home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol138 / config.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1986-12-15  |  55.8 KB  |  1,497 lines

  1. 10000  REM $linesize: 132 $title: 'CONFIG.BAS V1.7, Copyright 1983,1984,1985 by D. Thomas Mack'; ' WARNING !!! DO NOT CHANGE, BYPASS OR REMOVE LINE 10000-10230
  2. 10010  ' CONFIG.BAS (RBBS-PC ver. CPC12.5A)
  3. 10030  'by D. Thomas Mack
  4. 10040  '   The Second Ring
  5. 10050  '   10210 Oxfordshire Road
  6. 10060  '   Great Falls, Virginia 22066
  7. 10070  '
  8. 10080  ' *******************************NOTICE*************************************
  9. 10090  ' *  A limited license is granted to all users of this program and it's   *
  10. 10100  ' *  companion program, RBBS-PC (ver. CPC12.5), to make copies of this    *
  11. 10110  ' *  program and distribute the copies to other users, on the following   *
  12. 10120  ' *  conditions:                                                          *
  13. 10130  ' *    1.   The notices contained in lines 25 through 44 of the programs  *
  14. 10140  ' *         are not altered, bypassed, or removed.                        *
  15. 10150  ' *    2.   The program is not to be disrtibuted to others in modified    *
  16. 10160  ' *         form (i.e. the line numbers must remain the same).            *
  17. 10170  ' *    3.   No fee is to be charged (or any other consideration received) *
  18. 10180  ' *         for coping or distributing these programs without an express  *
  19. 10190  ' *         written agreement with D. Thomas Mack, The Second Ring, 10210 *
  20. 10200  ' *         Oxfordshire Road, Great falls, Virginia 22006                 *
  21. 10210  ' *                                                                       *
  22. 10220  ' *   Copyright (c) 1983, 1984, 1985 D. Thomas Mack, The Second Ring      *
  23. 10230  ' *************************************************************************
  24. 10240  DEFINT A-Z:CLEAR:DIM A$(10),SA(7),MD(21),FS(10),UA(16),HA$(9)
  25. 10250  WIDTH 80:CLS:I!=FRE(C$):KEY OFF:LOCATE ,,0
  26. 10260  PRINT TAB(60)"tm":PRINT TAB(16) STRING$(15,205)" U S E R W A R E "STRING$(15,205)
  27. 10270  PRINT:PRINT TAB(17)"Capital PC User Group User-Supported Software":PRINT:PRINT TAB(7) CHR$(214)STRING$(62,196)CHR$(183)
  28. 10280  FOR I=1 TO 12:READ A$:PRINT TAB(7) CHR$(186);A$;SPACE$(62-LEN(A$));CHR$(186):NEXT
  29. 10290  PRINT TAB(7) CHR$(211)STRING$(62,196)CHR$(189):PRINT TAB(21)"Copyright (c) 1983, 1984, 1985 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA
  30. 10300  DATA"    If you are using RBBS-PC CPC12.5 and find it valuable, I
  31. 10310  DATA"    suggest you consider a contribution to
  32. 10320  DATA"
  33. 10330  DATA"                 Capital PC Software Exchange
  34. 10340  DATA"                     Post Office Box 6128
  35. 10350  DATA"                Silver Spring, Maryland  20906
  36. 10360  DATA"
  37. 10370  DATA"    You are free to copy and share RBBS-PC CPC12.5 with
  38. 10380  DATA"    others on these three conditions:
  39. 10390  DATA"      1.  This program is not distributed in modified form.
  40. 10400  DATA"      2.  No fee or consideration is charged.
  41. 10410  DATA"      3.  This notice is not bypassed or removed.
  42. 10420  DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))) ' CPC10
  43. 10422  DEF FNHSH(X$)=((ASC(X$)*100 + ASC(MID$(X$,LEN(X$)/2,1))*10 + ASC(RIGHT$(X$,1))) MOD UB) + 1
  44. 10424  DEF FNHSH2(X$)=(ASC(MID$(X$,2,1))*10 + 7) MOD UB
  45. 10430  CA$="RBBS-PC.DEF":M$="Z":MAXD=10
  46. 10440  FGR=7
  47. 10450  BGR=0
  48. 10460  BDR=0
  49. 10470  IA!=FNTI!+5
  50. 10480  IF FNTI!<IA! THEN LOCATE 22,15:GOTO 10480
  51. 10490  LOCATE 22,15:PRINT SPC(64):LOCATE 22,15:PRINT"Will you be running multiple copies of RBBS-PC (YES or NO)?";
  52. 10500  GOSUB 22380:ON AB GOTO 10530,10510,10490,10490
  53. 10510  GOSUB 22480
  54. 10520  ' *************************************************************************
  55. 10530  ON ERROR GOTO 60010
  56. 10535  OPEN "I",#1,CA$:DD$="C":GOSUB 10540:GOTO 11590
  57. 10540  D$=DD$+":":FA=0:IB=0:TA=NOT FA:MB=8:MC=1:EA$="IBM's DOS":RA$="INTERNAL":UB=16:ME$=D$+"MESSAGES":MF$=D$+"MESSAGES.BAK":CB$=D$+"CALLERS":CC$=D$+"COMMENTS":UC$=D$+"USERS":C$="":HA$="HELP0":HA$(1)="HELP01":HA$(2)="HELP02":HA$(3)="HELP03"
  58. 10720  HA$(4)="HELP04":HA$(5)="HELP05":HA$(6)="HELP06":HA$(7)="HELP07":HA$(8)="HELP08":HA$(9)="HELP09":BA$="BULLET":BB$="BULLET":WA$=D$+"WELCOME":NA$=D$+"NEWUSER":MG$=D$+"MENU1":MH$=D$+"MENU2":MI$=D$+"MENU3":MJ$=D$+"MENU4":MK$=D$+"MENU5"
  59. 10880  CD$=D$+"CONFENCE":BC$=D$+"TRASHCAN":VA=0:OA=TA:UD=FA:CK=FA:PL=23:LW=19:WB=FA:DIR$="DIR":TB$=DD$:BD$=TB$:HB$=TB$:DA=2:NB$="TOM":NC$="MACK":PA$="RBBS-PC":FF$="RBBS-PC":PB$="CPC12":XPR=0:VER$="(Ver 1.7)":CE=0:ML=0:VA=ML:DB=5:SB=10:PC=SB
  60. 11110  CF=0:KA$=PA$:ND=5:SF=10:FOR I=1 TO 7:SA(I)=SF:NEXT:MM=5:FOR I=1 TO 21:MD(I)=MM:NEXT:FC=5:FOR I=1 TO 10:FS(I)=FC:NEXT:UE=5:FOR I=1 TO 16:UA(I)=UE:NEXT:PD$=TB$+":"+"PASSWRDS":CG=3:CH=5:WC=SB:MN=5:FD$=DD$+DD$:MO$=DD$:UF$="99":RB$=D$+"RBBS.BAT
  61. 11204  FB$=TB$+":"+"FILESEC":SC=10:SD=10:SE=0:SY$="IBMPC":TY=180:UPX!=0:B$="300"
  62. 11270  CI$=D$+"RCTTY.BAT":OB$="NO":OC$="NO":BE=0:PRT=TA:TC!=72:MP=25:LA=1:AC=800:AD=2200:CL=FA:OD=TA:M13$="COM1":RC=TA:BF=TA:MW$=". ":M26=FA:M28=FA:M29=FA:BG=6:IC=0:CM=0:SM1$="<ESC>  sysop sign-on maintenance/page.":SM2$=" <F1>  return to DOS.
  63. 11490  SM3$=" <F2>  return to BASIC.":SM4$=" <F3>  toggle Line Printer.":SM5$=" <F4>  toggle SYSOP Page Bell.":SM6$=" <F5>  force on-line state.":SM7$=" <F6>  toggle SYSOP available.":SM8$=" <F7>  SYSOP gets system after this caller.
  64. 11550  SM9$=" <F8>  grant temporary SYSOP privileges.":SH$=" <F9>  toggle SNOOP.":SI$="<F10>  force CHAT - ESC to end.":SG$="ATM0Q1S2=255S10=30S0=0":RETURN
  65. 11580  ' RBBS-PC Configuration Program for Compilable RBBS-PC
  66. 11590  LOCATE 22,15:PRINT SPC(64);
  67. 11600  INPUT #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PRT,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  68. 11610  GOSUB 22340
  69. 11620  INPUT #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$:IF LEN(SG$)<21 THEN SG$="ATM0Q1S2=255S10=30S0=255"
  70. 11630  GOSUB 22340
  71. 11640  INPUT #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$:GOSUB 21895
  72. 11650  GOSUB 22340
  73. 11660  INPUT #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  74. 11670  GOSUB 22340
  75. 11680  INPUT #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  76. 11690  GOSUB 22340
  77. 11700  INPUT #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  78. 11705  INPUT #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  79. 11710  GOSUB 22340
  80. 11720  BA$=RIGHT$(BA$,(LEN(BA$)-2))
  81. 11730  BB$=RIGHT$(BB$,(LEN(BB$)-2))
  82. 11740  IF CF=0 THEN RA$="INTERNAL" ELSE RA$="SYSTEM
  83. 11750  HB$=LEFT$(HA$(1),1)
  84. 11760  HA$(1)=RIGHT$(HA$(1),(LEN(HA$(1))-2))
  85. 11770  HA$=LEFT$(HA$(1),LEN(HA$(1))-1)
  86. 11780  SF=SA(1):FOR I=2 TO 7:IF SA(I)>SF THEN GOTO 11790 ELSE SF=SA(I)
  87. 11790  NEXT
  88. 11800  MM=MD(1):FOR I=2 TO 21:IF MD(I)>MM THEN GOTO 11810 ELSE MM=MD(I)
  89. 11810  NEXT
  90. 11820  FC=FS(1):FOR I=2 TO 10:IF FS(I)>FC THEN GOTO 11830 ELSE FC=FS(I)
  91. 11830  NEXT
  92. 11840  UE=UA(1):FOR I=2 TO 16:IF UA(I)>UE THEN GOTO 11850 ELSE UE=UA(I)
  93. 11850  NEXT
  94. 11860  CLOSE #1:GOSUB 22340
  95. 11862  GOSUB 50480:GOSUB 22340
  96. 11864  GOSUB 50530:GOSUB 22340
  97. 11870  IF XPR=0 THEN M5$="NOVICE
  98. 11880  IF XPR=-1 THEN M5$="EXPERT
  99. 11890  M6$=RIGHT$(FD$,1)
  100. 11900  M7$=LEFT$(FD$,(LEN(FD$)-1))
  101. 11910  IF BE=0 THEN M10$="OFF
  102. 11920  IF BE=-1 THEN M10$="ON
  103. 11950  IF CL=TA THEN M12$="COMPILED
  104. 11960  IF CL=FA THEN M12$="BASICA
  105. 11970  IF OD=TA THEN M15$="YES
  106. 11980  IF OD=FA THEN M15$="NO
  107. 11990  IF VAL(MID$(SG$,4,1))=0 THEN M14$="OFF
  108. 12000  IF VAL(MID$(SG$,4,1))=1 THEN M14$="ON
  109. 12010  IF RC=TA THEN M16$="YES
  110. 12020  IF RC=FA THEN M16$="NO
  111. 12030  IF BF=TA THEN M17$="YES
  112. 12040  IF BF=FA THEN M17$="NO
  113. 12050  IF OA=FA THEN M18$="NO
  114. 12060  IF OA=TA THEN M18$="YES
  115. 12070  IF UD=TA THEN M19$="YES
  116. 12080  IF UD=FA THEN M19$="NO
  117. 12085  IF CK=TA THEN M20$="YES
  118. 12086  IF CK=FA THEN M20$="NO
  119. 12090  IF WB=TA THEN M21$="YES
  120. 12100  IF WB=FA THEN M21$="NO
  121. 12110  IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  122. 12120  IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  123. 12122  IF MW$=". "+CHR$(7) THEN M11$="YES
  124. 12124  IF MW$=". " THEN M11$="NO
  125. 12130  IF M26=TA THEN M26$="YES
  126. 12140  IF M26=FA THEN M26$="NO
  127. 12145  IF M28=TA THEN M28$="YES
  128. 12146  IF M28=FA THEN M28$="NO
  129. 12147  IF M29=TA THEN M29$="YES
  130. 12148  IF M29=FA THEN M29$="NO
  131. 12150  Y$="
  132. 12155  MAINMSG$=ME$
  133. 12156  MAINUSR$=UC$
  134. 12160  KEY OFF:GOSUB 22340
  135. 12170  GOSUB 22760:GOSUB 22340
  136. 12180  FOR I=1 TO 10:KEY I,"":NEXT
  137. 12185  B1=UB:GOSUB 22140
  138. 12190  COLOR FGR,BGR,BDR:CLS:I!=FRE(C$)
  139. 12200  COLOR 0,7,0:LOCATE 4,10:PRINT"RBBS-PC CPC12.5A CONFIGURATION PROGRAM "+VER$:COLOR FGR,BGR,BDR:PRINT
  140. 12210  LOCATE 1,17,0:PRINT"Copyright (c) 1983,84,85 Tom Mack, 10210 Oxfordshire Rd., Great Falls, VA 22066
  141. 12220  LOCATE  7,2:PRINT"  F1            Global RBBS-PC Parameters (part 1)
  142. 12230  LOCATE  9,2:PRINT"  F2            Global RBBS-PC Parameters (part 2)
  143. 12240  LOCATE 11,2:PRINT"  F3            Parameters for static RBBS-PC Files
  144. 12250  LOCATE 13,2:PRINT"  F4            Parameters for dynamic RBBS-PC's Files
  145. 12260  LOCATE 15,2:PRINT"  F5            Parameters for RBBS-PC's 'Doors'
  146. 12270  LOCATE 17,2:PRINT"  F6            Parameters for RBBS-PC's Security
  147. 12280  LOCATE 19,2:PRINT"  F7            Parameters for multiple RBBS-PC's
  148. 12290  LOCATE 21,2:PRINT"  F8            RBBS-PC utilities
  149. 12300  LOCATE 24,5:PRINT"Press END to terminate or select function key to change parameters shown.";
  150. 12310  GOSUB 22160
  151. 12320  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12350,12360,12350
  152. 12330  GOTO 12310
  153. 12340  GOSUB 22540:GOTO 12310
  154. 12350  GOSUB 60380:GOTO 12310
  155. 12360  CN=1
  156. 12370  GOSUB 24800
  157. 12380  LOCATE  3,10:PRINT" 1. SYSOP's First Name --------------------------- "+NB$
  158. 12390  LOCATE  4,10:PRINT" 2. SYSOP's Last Name ---------------------------- "+NC$
  159. 12400  LOCATE  5,10:PRINT" 3. Password #1 for SYSOP to sign on remotely ---- "+MN1$
  160. 12410  LOCATE  6,10:PRINT" 4. Password #2 for SYSOP to sign on remotely----- "+MN2$
  161. 12420  LOCATE  7,10:PRINT" 5. Password for SYSOP to sign on locally -------- "+KA$
  162. 12430  LOCATE  8,10:PRINT" 6. SYSOP's default sign-on mode ----------------- "+M5$
  163. 12440  LOCATE  9,10:PRINT" 7. SYSOP's office hours ------------------------ "STR$(AC);" to "STR$(AD)
  164. 12445  LOCATE 10,10:PRINT" 8. Page SYSOP using printer's bell -------------- "+M11$
  165. 12450  LOCATE 11,10:PRINT" 9. Numbers of rings to wait before answering ----"STR$(CE)
  166. 12460  LOCATE 12,10:PRINT"10. Drive available for Uploading ---------------- "+M6$
  167. 12470  LOCATE 13,10:PRINT"11. Name of directory for uploading -------------- "+UF$
  168. 12480  LOCATE 14,10:PRINT"12. Drive(s) available for Downloading ----------- "+M7$
  169. 12490  LOCATE 15,10:PRINT"13. Prompt bell default is ----------------------- "+M10$
  170. 12500  LOCATE 16,10:PRINT"14. Maximum time per session (in minutes) --------"STR$(TC!)
  171. 12510  LOCATE 17,10:AA$=STRING$((14-LEN(STR$(TC!))),45):PRINT"15. Limit each user to"+STR$(TC!)+" minutes/day? "+AA$+" "+M26$
  172. 12530  LOCATE 18,10:PRINT"16. # Months of inactivty before user deleted ----"STR$(LA)
  173. 12560  LOCATE 19,10:PRINT"17. Communications port to be used by RBBS-PC ---- "+M13$
  174. 12570  LOCATE 20,10:PRINT"18. Version of DOS that RBBS-PC will run under ---"STR$(DA)
  175. 12575  LOCATE 21,10:PRINT"19. Name of RBBS-PC shown initially is ----------- "+FF$
  176. 12580  GOSUB 24890
  177. 12590  GOSUB 22160
  178. 12600  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12190,14200,12620
  179. 12610  GOTO 12590
  180. 12620  GOSUB 50340:IF VAL(HJ$)<1 OR VAL(HJ$)>19 THEN 12580 ELSE ON VAL(HJ$) GOTO 12840,12910,12980,13060,12670,13140,13210,13342,13350,13400,12730,13470,13750,13840,16650,13940,14120,15240,13131
  181. 12670  LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Enter password (8 characters or less)";:GOSUB 14990: IF LEN(HJ$)>8 OR INSTR(HJ$,"0!") THEN HJ$="5":GOTO 12670 ELSE KA$=HJ$:GOTO 12360
  182. 12730  GOSUB 13590: UF$=HJ$:GOTO 12360
  183. 12840  LOCATE 24,5:PRINT"What is the SYSOP's FIRST name? ";
  184. 12850  LINE INPUT;HJ$
  185. 12860  IF HJ$="" THEN GOTO 12840
  186. 12870  IF LEN(HJ$)<3 GOTO 12840
  187. 12880  GOSUB 50654
  188. 12890  NB$=HJ$
  189. 12900  GOTO 12360
  190. 12910  LOCATE 24,5:PRINT"What is the SYSOP's LAST name? ";
  191. 12920  LINE INPUT;HJ$
  192. 12930  IF HJ$="" THEN GOTO 12910
  193. 12940  IF LEN(HJ$)<3 GOTO 12910
  194. 12950  GOSUB 50654
  195. 12960  NC$=HJ$
  196. 12970  GOTO 12360
  197. 12980  LOCATE 24,5:PRINT"What is the SYSOP's Password #1? ";
  198. 12990  LINE INPUT;HJ$
  199. 13020  GOSUB 50654
  200. 13030  PA$=HJ$
  201. 13040  IF PA$="" THEN MN1$="(Disabled)" ELSE MN1$=PA$
  202. 13050  GOTO 12360
  203. 13060  LOCATE 24,5:PRINT"What is the SYSOP's Password #2? ";
  204. 13070  LINE INPUT;HJ$
  205. 13100  GOSUB 50654
  206. 13110  PB$=HJ$
  207. 13120  IF PB$="" THEN MN2$="(Disabled)" ELSE MN2$=PB$
  208. 13130  GOTO 12360
  209. 13131  LOCATE 24,5:PRINT"Enter name for this RBBS-PC (19 characters or less) ";
  210. 13132  LINE INPUT;HJ$
  211. 13133  IF LEN(HJ$)>19 GOTO 13131
  212. 13134  GOSUB 50654
  213. 13135  FF$=HJ$
  214. 13136  GOTO 12360
  215. 13140  LOCATE 24,5:PRINT"SYSOP's default sign-on mode (EXPERT/NOVICE)? ";
  216. 13150  LINE INPUT;HJ$
  217. 13160  IF LEN(HJ$)=6 OR LEN(HJ$)=1 THEN GOTO 13170 ELSE GOTO 13140
  218. 13170  GOSUB 50654
  219. 13180  IF HJ$="E" OR HJ$="EXPERT" THEN M5$="EXPERT":GOTO 12360
  220. 13190  IF HJ$="N" OR HJ$="NOVICE" THEN M5$="NOVICE":GOTO 12360
  221. 13200  GOTO 13140
  222. 13210  LOCATE 24,5:PRINT"What is the earliest SYSOP wants to be paged? -- HHMM ";
  223. 13220  LINE INPUT;HJ$
  224. 13230  IF LEN(HJ$)<>4 GOTO 13210
  225. 13240  IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13210
  226. 13250  AC=VAL(HJ$)
  227. 13260  IF AC<0 OR AC>2400 THEN GOTO 13210
  228. 13270  LOCATE 25,5:PRINT"What is the latest SYSOP wants to be paged? ---- HHMM ";
  229. 13280  LINE INPUT;HJ$
  230. 13290  IF LEN(HJ$)<>4 GOTO 13270
  231. 13300  IF FIX(VAL(MID$(HJ$,1,2)))<0 OR FIX(VAL(MID$(HJ$,1,2)))>24 OR FIX(VAL(MID$(HJ$,3,2)))<0 OR FIX(VAL(MID$(HJ$,3,2)))>59 THEN GOTO 13270
  232. 13310  AD=VAL(HJ$)
  233. 13320  IF AD<0 OR AD>2400 THEN GOTO 13270
  234. 13330  IF AC>AD THEN SWAP AC,AD
  235. 13340  GOTO 12360
  236. 13342  LOCATE 24,5:PRINT"Use on-line printer's bell to the page SYSOP? (YES or NO) ";
  237. 13343  GOSUB 22380:ON AB GOTO 13344,13344,13342,13342
  238. 13344  M11$=HJ$
  239. 13345  GOTO 12360
  240. 13350  LOCATE 24,5:PRINT"How many rings should RBBS-PC wait before answering? ";
  241. 13360  LINE INPUT;HJ$
  242. 13370  CE=FIX(VAL(HJ$))
  243. 13380  IF CE<0 OR CE>255 THEN GOTO 13350 ELSE SG$=MID$(SG$,1,21)+"0E0":IF CE=0 THEN GOTO 12360
  244. 13381  LOCATE 24,5:PRINT"Ring once and then wait"+STR$(CE)+" RINGS, i.e. 'ring-back'? (YES or NO)";
  245. 13382  GOSUB 22380:ON AB GOTO 12360,13390,13381,13381
  246. 13390  SG$=MID$(SG$,1,21)+"255E0":GOTO 12360
  247. 13400  LOCATE 24,5:PRINT"Specify single drive in the range A->"+M$+" for uploading. ";
  248. 13410  LINE INPUT;HJ$
  249. 13420  IF LEN(HJ$)<>1 THEN GOTO 13400
  250. 13430  GOSUB 50654
  251. 13440  IF HJ$<"A" OR HJ$>M$ THEN GOTO 13400
  252. 13450  M6$=HJ$
  253. 13460  GOTO 12360
  254. 13470  LOCATE 24,5:PRINT"Specify download drives (max of"+STR$(MAXD)+" in the range A-> "+M$+"). ";
  255. 13480  LINE INPUT;HJ$
  256. 13490  IF LEN(HJ$)<1 OR LEN(HJ$)>MAXD THEN GOTO 13470
  257. 13500  GOSUB 50654
  258. 13510  FOR I=1 TO LEN(HJ$)
  259. 13520  A$(I)=MID$(HJ$,I,1)
  260. 13530  NEXT
  261. 13540  FOR I=1 TO LEN(HJ$)
  262. 13550  IF A$(I)<"A" OR A$(I)>M$ THEN GOTO 13470
  263. 13560  NEXT
  264. 13570  M7$=HJ$
  265. 13580  GOTO 12360
  266. 13590  A$="Name of upload directory (max of 8 characters).":MAX=8:GOTO 13599
  267. 13591  A$="Master directory name--used as ext. for others. (3 char. max).":MAX=3
  268. 13599  LOCATE 24,5:PRINT A$;
  269. 13600  LINE INPUT;HJ$:GOSUB 50654
  270. 13610  IF LEN(HJ$)<1 OR LEN(HJ$)>MAX THEN GOTO 13599
  271. 13620  FOR J=1 TO LEN(HJ$)
  272. 13630      X=ASC(MID$(HJ$,J,1))
  273. 13640      IF (X>64 AND X<91) THEN GOTO 13720
  274. 13650      IF (X>47 AND X<58) THEN GOTO 13720
  275. 13660      IF (X=33) THEN GOTO 13720
  276. 13670      IF (X>34 AND X<42) THEN GOTO 13720
  277. 13680      IF (X>43 AND X<46) THEN GOTO 13720
  278. 13690      IF (X>96 AND X<124) THEN GOTO 13720
  279. 13700      IF (X=125) THEN GOTO 13720
  280. 13710  GOTO 13599
  281. 13720  NEXT
  282. 13740  RETURN
  283. 13750  LOCATE 24,5:PRINT"Prompt bell default? (ON or OFF) ";
  284. 13760  LINE INPUT;HJ$
  285. 13770  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 13750
  286. 13780  GOSUB 50654
  287. 13790  IF HJ$="ON" THEN GOTO 13820
  288. 13800  IF HJ$="OFF" THEN GOTO 13820
  289. 13810  GOTO 13750
  290. 13820  M10$=HJ$
  291. 13830  GOTO 12360
  292. 13840  LOCATE 24,5:PRINT"Set maximum minutes a user can stay on the system ";
  293. 13850  LINE INPUT;HJ$
  294. 13860  TC!=VAL(HJ$)
  295. 13870  IF TC!<0 OR TC!>1440 THEN GOTO 13840
  296. 13880  GOTO 12360
  297. 13890  LOCATE 24,5:PRINT"Set maximum number of messages allowed (MAX=250) ";
  298. 13900  LINE INPUT;HJ$
  299. 13910  MP=VAL(HJ$)
  300. 13920  IF MP<1 OR MP>250 THEN GOTO 13890
  301. 13930  GOTO 21570
  302. 13940  LOCATE 24,5:PRINT"Set number of months before an inactive user is purged. ";
  303. 13950  LINE INPUT;HJ$
  304. 13960  LA=VAL(HJ$)
  305. 13970  IF LA<1 OR LA>12 THEN GOTO 13940
  306. 13980  GOTO 12360
  307. 14120  CP1=1
  308. 14130  CP2=2
  309. 14140  LOCATE 24,5:PRINT"Number of communication port to be used ("+STR$(CP1)+" or"+STR$(CP2)+" )? ";
  310. 14150  LINE INPUT;HJ$
  311. 14160  IF LEN(HJ$)<>1 THEN GOTO 14120
  312. 14170  IF FIX(VAL(MID$(HJ$,1,1)))<CP1 OR FIX(VAL(MID$(HJ$,1,1)))>CP2 THEN GOTO 14120
  313. 14180  M13$="COM"+HJ$
  314. 14190  GOTO 12360
  315. 14200  CN=2
  316. 14210  GOSUB 24800
  317. 14220  LOCATE  3,10:PRINT"21. Foreground color (for color monitors) is -----"STR$(FGR)
  318. 14230  LOCATE  4,10:PRINT"22. Background color (for color monitors) is -----"STR$(BGR)
  319. 14240  LOCATE  5,10:PRINT"23. The border color (for color monitors) is -----"STR$(BDR)
  320. 14250  LOCATE  6,10:PRINT"24. The modem speaker default is ----------------- "+M14$
  321. 14260  LOCATE  7,10:PRINT"25. Remind users of messages that they left ------ "+M16$
  322. 14270  LOCATE  8,10:PRINT"26. Remind users of # uploads and downloads? ----- "+M19$
  323. 14275  LOCATE  9,10:PRINT"27. Remind users of their terminal profile? ------ "+M20$
  324. 14280  LOCATE 10,10:PRINT"28. Default user page length is ------------------"STR$(PL)
  325. 14290  LOCATE 11,10:PRINT"29. Maximum number of lines allowed per message --"STR$(LW)
  326. 14300  LOCATE 12,10:PRINT"30. Require non-ascii protocol for binary files -- "+M17$
  327. 14305  LOCATE 13,10:PRINT"31. Is MICROCOM's MNP protocol available? -------- "+M29$
  328. 14310  LOCATE 14,10:PRINT"32. Omit ";DIR$;" from N)ew command ";STRING$(22-LEN(DIR$),"-");" ";OB$
  329. 14320  LOCATE 15,10:PRINT"33. Omit ";M6$+":"+UF$;" from N)ew command ";STRING$(20-LEN(UF$),"-");" ";OC$
  330. 14330  LOCATE 16,10:PRINT"34. Is system 'welcome' interruptable? ----------- "+M18$
  331. 14340  LOCATE 17,10:PRINT"35. Are system bulletins to be 'optional'? ------- "+M15$
  332. 14350  IF CM THEN M27$="YES" ELSE M27$="NO
  333. 14360  LOCATE 18,10:PRINT"36. Will RBBS-PC be running on a non-IBM PC? ----- "+M27$
  334. 14365  LOCATE 19,10:PRINT"37. Issue modem commands between rings ----------- "+M28$
  335. 14366  LOCATE 20,10:PRINT"38. Baud rate to initially open modem at --------- "+B$
  336. 14367  LOCATE 21,10:PRINT"39. Seconds waited before logging off idle users -"+STR$(TY)
  337. 14370  GOSUB 24890
  338. 14380  GOSUB 22160
  339. 14390  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,12360,14570,14410
  340. 14400  GOTO 14380
  341. 14410  GOSUB 50340:IF VAL(HJ$)<21 OR VAL(HJ$)>39 THEN 14370 ELSE ON VAL(HJ$)-20 GOTO 14420,14430,14440,15710,15800,16690,16722,16730,16790,15880,15911,15920,15960,16000,15840,16040,16121,16124,16031
  342. 14420  GOSUB 15520: GOTO 15530
  343. 14430  GOSUB 15520: GOTO 15590
  344. 14440  GOSUB 15520: GOTO 15650
  345. 14570  CN=3
  346. 14580  GOSUB 24800
  347. 14590  LOCATE  3,10:PRINT"41. Drive containing RBBS-PC bulletins is -------- "+BD$
  348. 14600  LOCATE  4,10:PRINT"42. Name of file describing 'bulletins' is ------- "+BA$
  349. 14610  LOCATE  5,10:PRINT"43. Number of active 'bulletins' -----------------"+STR$(BG)
  350. 14620  LOCATE  6,10:PRINT"44. Prefix used to name bulletin files is -------- "+BB$
  351. 14630  LOCATE  7,10:PRINT"45. Drive containing 'help' files is ------------- "+HB$
  352. 14640  LOCATE  8,10:PRINT"46. Prefix used to name the nine 'help' files ---- "+HA$
  353. 14650  LOCATE  9,10:PRINT"47. Name of 'newuser' file shown to new users ---- "+NA$
  354. 14660  LOCATE 10,10:PRINT"48. Name of 'welcome' file shown at logon -------- "+WA$
  355. 14670  LOCATE 11,10:PRINT"49. File directory ext. (name of master directory) "+DIR$
  356. 14680  LOCATE 12,10:PRINT"50. The SYSOP's command menu is named ------------ "+MG$
  357. 14690  LOCATE 13,10:PRINT"51. The main messages subsystem menu is named ---- "+MH$
  358. 14700  LOCATE 14,10:PRINT"52. The file subsystem menu is named ------------- "+MI$
  359. 14710  LOCATE 15,10:PRINT"53. The utilities subsystem menu is named -------- "+MJ$
  360. 14730  LOCATE 16,10:PRINT"54. Menu that lists available conferences is ----- "+CD$
  361. 14740  LOCATE 17,10:PRINT"55. File containing invalid user names ----------- "+BC$
  362. 14742  LOCATE 18,10:PRINT"56. Factor to extend session time for uploads ----"+STR$(UPX!)
  363. 14744  LOCATE 19,10:PRINT"57. Default system type for new callers ---------- "+SY$
  364. 14750  GOSUB 24890
  365. 14760  GOSUB 22160
  366. 14770  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14200,15340,14790
  367. 14780  GOTO 14760
  368. 14790  GOSUB 50340
  369. 14800  IF HJ$="41"THEN GOSUB 15160:BD$=TB$:GOTO 14570
  370. 14810  IF HJ$="42" THEN GOSUB 14970:BA$=HJ$: GOTO 14570
  371. 14820  IF HJ$="43" THEN GOTO 15290
  372. 14830  IF HJ$="44" THEN GOSUB 14970: IF LEN(HJ$)>6 THEN HJ$="44":GOTO 14810 ELSE BB$=HJ$: GOTO 14570
  373. 14840  IF HJ$="45" THEN GOSUB 15160:HB$=HJ$: GOTO 14570
  374. 14850  IF HJ$="46" THEN GOSUB 14970: IF LEN(HJ$)>7 THEN HJ$="44":GOTO 14810 ELSE HA$=HJ$: GOTO 14570
  375. 14860  IF HJ$="47" THEN GOSUB 17330: NA$=SJ$+":"+HJ$: GOTO 14570
  376. 14870  IF HJ$="48" THEN GOSUB 17330: WA$=SJ$+":"+HJ$: GOTO 14570
  377. 14880  IF HJ$="49" THEN GOSUB 13591: DIR$=HJ$: GOTO 14570
  378. 14890  IF HJ$="50" THEN GOSUB 17330: MG$=SJ$+":"+HJ$: GOTO 14570
  379. 14900  IF HJ$="51" THEN GOSUB 17330: MH$=SJ$+":"+HJ$: GOTO 14570
  380. 14910  IF HJ$="52" THEN GOSUB 17330: MI$=SJ$+":"+HJ$: GOTO 14570
  381. 14920  IF HJ$="53" THEN GOSUB 17330: MJ$=SJ$+":"+HJ$: GOTO 14570
  382. 14940  IF HJ$="54" THEN GOSUB 17330: CD$=SJ$+":"+HJ$: GOTO 14570
  383. 14950  IF HJ$="55" THEN GOSUB 17330: BC$=SJ$+":"+HJ$:GOTO 14570
  384. 14952  IF HJ$="56" THEN GOSUB 15234:GOTO 14570
  385. 14954  IF HJ$="57" THEN GOSUB 15236:GOTO 14570
  386. 14960  GOTO 14750
  387. 14970  X$=HJ$
  388. 14980  LOCATE 24,5:PRINT SPC(74):LOCATE 24,5:PRINT"Specify name of the file for option "+X$+". ";
  389. 14990  LINE INPUT;HJ$:GOSUB 50654
  390. 15000  IF LEN(HJ$)<1 OR LEN(HJ$)>12 THEN GOTO 14980
  391. 15010  L1=INSTR(HJ$,"."):IF L1=0 THEN IF LEN(HJ$)<9 THEN GOTO 15050 ELSE GOTO 14980
  392. 15020  IF L1>9 THEN GOTO 14980
  393. 15030  IF L1<2 THEN GOTO 14980
  394. 15040  IF LEN(HJ$)-L1>3 THEN GOTO 14980
  395. 15050  FOR J=1 TO LEN(HJ$)
  396. 15060      X=ASC(MID$(HJ$,J,1))
  397. 15070      IF (X>63 AND X<91) THEN GOTO 15150
  398. 15080      IF (X>47 AND X<58) THEN GOTO 15150
  399. 15090      IF (X=33) THEN GOTO 15150
  400. 15100      IF (X>34 AND X<42) THEN GOTO 15150
  401. 15110      IF (X>43 AND X<47) THEN GOTO 15150
  402. 15120      IF (X>96 AND X<124) THEN GOTO 15150
  403. 15130      IF (X=125) THEN GOTO 15150
  404. 15140  GOTO 14980
  405. 15150  NEXT: RETURN
  406. 15160  X$=HJ$
  407. 15170  LOCATE 24,5:PRINT"Specify drive in the range A->"+M$+" for option "+X$". ";
  408. 15180  LINE INPUT;HJ$
  409. 15190  IF LEN(HJ$)<>1 THEN GOTO 15170
  410. 15200  GOSUB 50654
  411. 15210  IF HJ$<"A" OR HJ$>M$ THEN GOTO 15170
  412. 15220  TB$=HJ$
  413. 15230  RETURN
  414. 15234  LOCATE 24,5:PRINT "Extend by what fraction of time uploading ";:LINE INPUT;HJ$:IF VAL(HJ$)<0 OR VAL(HJ$)>10 THEN 15234 ELSE UPX!=VAL(HJ$):RETURN
  415. 15236  LOCATE 24,5:PRINT "Enter default system type ";:LINE INPUT;SY$:IF LEN(SY$)<2 THEN GOSUB 50340:GOTO 15236 ELSE RETURN
  416. 15240  LOCATE 24,5:PRINT"What version of DOS will RBBS-PC be running under (1, 2, or 3)?";
  417. 15250  LINE INPUT;HJ$
  418. 15260  B1=VAL(HJ$)
  419. 15270  IF B1<1 OR B1>3 THEN GOTO 15240
  420. 15280  DA=B1:GOTO 12360
  421. 15290  LOCATE 24,5:PRINT"Enter number of active 'bulletins' (0 to 99)";
  422. 15300  LINE INPUT;HJ$
  423. 15310  B1%=VAL(HJ$)
  424. 15320  IF B1%<1 OR B1%>99 THEN GOTO 15290
  425. 15330  BG=B1%:GOTO 14570
  426. 15340  CN=4
  427. 15350  GOSUB 24800
  428. 15360  LOCATE  4,10:PRINT"61. System file containing messages is named ----- "+ME$
  429. 15380  LOCATE  5,10:PRINT"62. System file for 'callers' is named ----------- "+CB$
  430. 15390  LOCATE  6,10:PRINT"63. System file for comments to SYSOP is named --- "+CC$
  431. 15400  LOCATE  7,10:PRINT"64. System file for recording users is named ----- "+UC$
  432. 15410  GOSUB 24890
  433. 15420  GOSUB 22160
  434. 15430  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,14570,16130,15450
  435. 15440  GOTO 15420
  436. 15450  GOSUB 50340
  437. 15460  IF HJ$="61" THEN GOSUB 17330: GOTO 15511
  438. 15480  IF HJ$="62" THEN GOSUB 17330: CB$=SJ$+":"+HJ$:GOTO 15340
  439. 15490  IF HJ$="63" THEN GOSUB 17330: CC$=SJ$+":"+HJ$:GOTO 15340
  440. 15500  IF HJ$="64" THEN GOSUB 17330: GOTO 15512
  441. 15510  GOTO 15410
  442. 15511  IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="61":GOTO 15460 ELSE ME$=SJ$+":"+HJ$:MF$=ME$+".BAK":MAINMSG$=ME$:GOTO 15340
  443. 15512  IF LEN(HJ$)>8 OR INSTR(HJ$,".") THEN HJ$="64":GOTO 15500 ELSE UC$=SJ$+":"+HJ$:MAINUSR$=UC$:GOTO 15340
  444. 15520  LOCATE 24,5:PRINT"(See the description of the COLOR statement in Basic.)";:RETURN
  445. 15530  LOCATE 25,5:PRINT"Enter foreground color (a value between 0 and 15)";
  446. 15540  LINE INPUT;HJ$
  447. 15550  B1=VAL(HJ$)
  448. 15560  IF B1<0 OR B1>15 THEN GOTO 15530
  449. 15570  FGR=B1
  450. 15580  GOTO 14200
  451. 15590  LOCATE 25,5:PRINT"Enter background color (a value between 0 and 7)";
  452. 15600  LINE INPUT;HJ$
  453. 15610  B1=VAL(HJ$)
  454. 15620  IF B1<0 OR B1>7 THEN GOTO 15590
  455. 15630  BGR=B1
  456. 15640  GOTO 14200
  457. 15650  LOCATE 25,5:PRINT"Enter the border color (a value between 0 and 7)";
  458. 15660  LINE INPUT;HJ$
  459. 15670  B1=VAL(HJ$)
  460. 15680  IF B1<0 OR B1>7 THEN GOTO 15650
  461. 15690  BDR=B1
  462. 15700  GOTO 14200
  463. 15710  LOCATE 24,5:PRINT"Modem speaker default? (ON or OFF) ";
  464. 15720  LINE INPUT;HJ$
  465. 15730  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 15710
  466. 15740  GOSUB 50654
  467. 15750  IF HJ$="ON" THEN GOTO 15780
  468. 15760  IF HJ$="OFF" THEN GOTO 15780
  469. 15770  GOTO 15710
  470. 15780  M14$=HJ$
  471. 15790  GOTO 14200
  472. 15800  LOCATE 24,5:PRINT"Remind users of the messages they left? (YES or NO) ";
  473. 15810  GOSUB 22380:ON AB GOTO 15820,15820,15800,15800
  474. 15820  M16$=HJ$
  475. 15830  GOTO 14200
  476. 15840  LOCATE 24,5:PRINT"Are system bulletins to be optional? (YES or NO) ";
  477. 15850  GOSUB 22380:ON AB GOTO 15860,15860,15840,15840
  478. 15860  M15$=HJ$
  479. 15870  GOTO 14200
  480. 15880  LOCATE 24,5:PRINT"Is non-ascii protocol required for binary files? (YES or NO) ";
  481. 15890  GOSUB 22380:ON AB GOTO 15900,15900,15880,15880
  482. 15900  M17$=HJ$
  483. 15910  GOTO 14200
  484. 15911  LOCATE 24,5:PRINT"Enable MICROCOM's MNP protocol? (YES or NO) ";
  485. 15912  GOSUB 22380:ON AB GOTO 15913,15913,15911,15911
  486. 15913  M29$=HJ$
  487. 15914  GOTO 14200
  488. 15920  LOCATE 24,5:PRINT"Is ";DIR$;" omitted from the N)ew command? (YES or NO) ";
  489. 15930  GOSUB 22380:ON AB GOTO 15940,15940,15920,15920
  490. 15940  OB$=HJ$
  491. 15950  GOTO 14200
  492. 15960  LOCATE 24,5:PRINT"Is ";UF$;" omitted from the N)ew command? (YES or NO) ";
  493. 15970  GOSUB 22380:ON AB GOTO 15980,15980,15960,15960
  494. 15980  OC$=HJ$
  495. 15990  GOTO 14200
  496. 16000  LOCATE 24,5:PRINT"Is system 'welcome' interruptable (YES OR NO) ";
  497. 16010  GOSUB 22380:ON AB GOTO 16020,16020,16000,16000
  498. 16020  M18$=HJ$
  499. 16030  GOTO 14200
  500. 16031  LOCATE 24,5:PRINT"Seconds users can be idle before being logged off";
  501. 16032  LINE INPUT;HJ$
  502. 16033  TY=VAL(HJ$)
  503. 16034  IF TY<1 OR TY>32400 THEN GOTO 16031
  504. 16035  GOTO 14200
  505. 16040  LOCATE 24,5:PRINT"Will RBBS-PC be running on a non-IBM PC (YES OR NO) ";
  506. 16050  GOSUB 22380:ON AB GOTO 16060,16080,16040,16040
  507. 16060  CM=0
  508. 16070  GOTO 14200
  509. 16080  GOSUB 50340:LOCATE 24,5:PRINT"Will RBBS-PC be running on a COMPAQ+ (YES OR NO) ";
  510. 16090  GOSUB 22380:ON AB GOTO 16110,16100,16080,16080
  511. 16100  CM=1:GOTO 14200
  512. 16110  CM=2:GOTO 14200
  513. 16120  GOTO 14200
  514. 16121  LOCATE 24,5:PRINT"Wait to issue modem commands between rings? (YES OR NO) ";
  515. 16122  GOSUB 22380:ON AB GOTO 16123,16123,16121,16121
  516. 16123  M28$=HJ$:GOTO 14200
  517. 16124  LOCATE 25,5:PRINT"Enter initial baud rate (300, 1200, 2400) to open modem at ";
  518. 16125  LINE INPUT;HJ$
  519. 16126  B1=VAL(HJ$)
  520. 16127  IF B1=300 OR B1=1200 OR B1=2400 THEN GOTO 16128 ELSE GOTO 16124
  521. 16128  B$=MID$(STR$(B1),2)
  522. 16129  GOTO 14200
  523. 16130  CN=5
  524. 16140  GOSUB 24800
  525. 16150  LOCATE  3,10:PRINT"81. Is the 'door' subystem available? ------------ "+M21$
  526. 16160  LOCATE  4,10:PRINT"82. The 'door' subsystem menu is named ----------- "+MK$
  527. 16170  LOCATE  5,10:PRINT"83. File RBBS builds dynamically to open a 'door'- "+CI$
  528. 16180  LOCATE  6,10:PRINT"84. When a 'door' closes, file to re-invoke RBBS - "+RB$
  529. 16190  GOSUB 24890
  530. 16200  GOSUB 22160
  531. 16210  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,15340,16910,16230
  532. 16220  GOTO 16200
  533. 16230  GOSUB 50340
  534. 16240  IF HJ$="81" THEN GOTO 16290
  535. 16250  IF HJ$="82" THEN GOSUB 17330: MK$=SJ$+":"+HJ$:GOTO 16130
  536. 16260  IF HJ$="83" THEN GOSUB 17330: CI$=SJ$+":"+HJ$:GOTO 16130
  537. 16270  IF HJ$="84" THEN GOSUB 17330: RB$=SJ$+":"+HJ$:GOTO 16130
  538. 16280  GOTO 16190
  539. 16290  LOCATE 24,5:PRINT"Is the window subsystem available? (YES or NO) ";
  540. 16300  GOSUB 22380:ON AB GOTO 16310,16310,16290,16290
  541. 16310  M21$=HJ$
  542. 16320  IF M21$="NO" GOTO 16130 ELSE LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Will you be running RBBS-PC under MultiLink from The Software Link? ";
  543. 16330  GOSUB 22380:ON AB GOTO  16340,16350,16290,16290
  544. 16340  IA!=FNTI!+15:GOSUB 16470:GOTO 16130
  545. 16350  GOSUB 16380:GOTO 16360
  546. 16360  LOCATE 23,1:PRINT"Current Multi-Link terminal type for WINDOWS is ";MN
  547. 16370  LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Enter Multi-Link terminal type for WINDOWS ";:GOSUB 17420:MN=B1:IF MN <1 THEN 16370 ELSE IF MN >12 THEN GOTO 16370 ELSE GOTO 16130
  548. 16380  CLS:PRINT "Multi-Link is a software product of The Software Link, Inc.":PRINT"located at 6700 23-B Roswell Road, Atlanta, Georgia  30328.":PRINT "It allows IBM's DOS 1.1 or 2.0 or the IBM PC to be a multi-tasking
  549. 16400  PRINT "operating system.  The Capital PC User Group has no connection
  550. 16410  PRINT "whatsoever with this company or it's products.  In fact The Software":PRINT"Link has only occasionally sent updates of it's new releases to us.":PRINT"That is the reason that RBBS-PC is only supported under Release 2.07 of
  551. 16420  PRINT"Multi-Link.  I feel strongly that IBM's DOS for the PC should be":PRINT"multi-tasking.  Because Multi-Link provides this capability for the widest
  552. 16430  PRINT"ranges of DOS software for the IBM PC, RBBS-PC has been enhanced":PRINT "to run under Multi-Link.  Any questions regarding RBBS-PC under Multi-Link":PRINT"(other than Release 3.01 of Multi-Link) should be directed to The
  553. 16440  PRINT"Software Link's customer support group at (404) 998-0788.":PRINT"":PRINT"I have run RBBS-PC under Multi-Link since December 1983 -- since Multi-Link":PRINT"release 2.04.  Since Multi-Link release 2.06 I HAVE NEVER HAD A SYSTEM CRASH
  554. 16450  PRINT"due to Multi-Link.  I think it is a quality product but a bit over-priced.":PRINT "My opnion on Multi-Link's price reflects my prejudice that all PC software":PRINT"should be relatively inexpensive.":PRINT"":PRINT SPC(60);"Tom Mack
  555. 16460  PRINT SPC(60);"July 1, 1984":RETURN
  556. 16470  CLS:PRINT"                ******Warning******":PRINT"IBM's DOS absolutely REQUIRES any software package running":PRINT"as a 'door' (i.e. via a communication port) to monitor the":PRINT"communication port!  Unless the software that you invoke via
  557. 16480  PRINT"the RBBS-PC 'door' mechanism monitors the communication line,":PRINT"your system will be vulnerable to being hung -- and worse!!!":PRINT"If you don't THROUGHLY understand section 10.0 of RBBS-PC's
  558. 16490  PRINT"documentation which discusses the pitfalls of opening RBBS-PC's":PRINT"'doors' to your users, DON'T use 'doors'!!!!!
  559. 16640  IF FNTI!<IA! THEN 16640 ELSE RETURN
  560. 16650  LOCATE 24,5:PRINT"Limit the maximum time a users can be on each day? (YES or NO) ";
  561. 16660  GOSUB 22380:ON AB GOTO 16670,16670,16650,16650
  562. 16670  M26$=HJ$
  563. 16680  GOTO 12360
  564. 16690  LOCATE 24,5:PRINT"Remind users of # uploads and downloads? (YES or NO) ";
  565. 16700  GOSUB 22380:ON AB GOTO 16710,16710,16690,16690
  566. 16710  M19$=HJ$
  567. 16720  GOTO 14200
  568. 16722  LOCATE 24,5:PRINT"Remind users of their terminal's profile? (YES or NO) ";
  569. 16723  GOSUB 22380:ON AB GOTO 16724,16724,16722,16722
  570. 16724  M20$=HJ$
  571. 16725  GOTO 14200
  572. 16730  LOCATE 24,5:PRINT"Default user page length?(a value between 0 and 255)";
  573. 16740  LINE INPUT;HJ$
  574. 16750  B1=VAL(HJ$)
  575. 16760  IF B1<0 OR B1>255 THEN GOTO 16730
  576. 16770  PL=B1
  577. 16780  GOTO 14200
  578. 16790  LOCATE 24,5:PRINT"Maximum number of lines allowed per message (1->30)";
  579. 16800  LINE INPUT;HJ$
  580. 16810  B1=VAL(HJ$)
  581. 16820  IF B1<1 OR B1>30 THEN GOTO 16790
  582. 16830  LW=B1
  583. 16840  GOTO 14200
  584. 16850  LOCATE 24,5:PRINT"Security level temporarily imposed on conference 'viewers'";
  585. 16860  HJ$="V>iew
  586. 16870  GOSUB 17420:VA=B1
  587. 16900  GOTO 16910
  588. 16910  CN=6
  589. 16920  GOSUB 24800
  590. 16930  LOCATE  3,9:PRINT"101. Minimum security level to get onto RBBS ------ "STR$(ML)
  591. 16940  LOCATE  4,9:PRINT"102. Default security level for new callers ------- "STR$(DB)
  592. 16950  LOCATE  5,9:PRINT"103. Security level for SYSOP --------------------- "STR$(SB)
  593. 16960  LOCATE  6,9:PRINT"104. Files with download security are listed in ---  "+FB$
  594. 16970  LOCATE  7,9:PRINT"105. Minimum security level to see SYSOP's menu --- "STR$(SC)
  595. 16980  LOCATE  8,9:PRINT"106. Minimum security level to use RBBS-PC 'doors'  "+STR$(SD)
  596. 16990  LOCATE  9,9:PRINT"107. Max # security violations before disconnect -- "STR$(ND)
  597. 17000  M22$=STR$(SF):IX=SA(1):FOR I=2 TO 7:IF IX<>SA(I) THEN M22$="(Variable)":GOTO 17010 ELSE NEXT
  598. 17010  LOCATE 10,9:PRINT"108. Security level for SYSOP functions ----------- "M22$
  599. 17020  M23$=STR$(MM):IX=MD(1):FOR I=2 TO 21:IF IX<>MD(I) THEN M23$="(Variable)":GOTO 17030 ELSE NEXT
  600. 17030  LOCATE 11,9:PRINT"109. Security level for main menu functions ------- "M23$
  601. 17040  M24$=STR$(FC):IX=FS(1):FOR I=2 TO 10:IF IX<>FS(I) THEN M24$="(Variable)":GOTO 17050 ELSE NEXT
  602. 17050  LOCATE 12,9:PRINT"110. Security level for file menu functions ------- "M24$
  603. 17060  M25$=STR$(UE):IX=UA(1):FOR I=2 TO 16:IF IX<>UA(I) THEN M25$="(Variable)":GOTO 17070 ELSE NEXT
  604. 17070  LOCATE 13,9:PRINT"111. Security level for utilities menu functions -- "M25$
  605. 17080  LOCATE 14,9:PRINT"112. File with privileged group passwords is named-  "PD$
  606. 17090  LOCATE 15,9:PRINT"113. Max # of password changes in a session ------- "STR$(CG)
  607. 17100  LOCATE 16,9:PRINT"114. Min. security level for temp. password changes "STR$(CH)
  608. 17110  LOCATE 17,9:PRINT"115. Min. security level to overwrite on uploads -- "STR$(WC)
  609. 17115  LOCATE 18,9:PRINT"116. Security level of conference 'viewers' ------- "STR$(VA)
  610. 17116  LOCATE 19,9:PRINT"117. User's security exempted from 'packing' ------ "STR$(PC)
  611. 17120  GOSUB 24890
  612. 17130  GOSUB 22160
  613. 17140  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16130,21550,17160
  614. 17150  GOTO 17130
  615. 17160  GOSUB 50340
  616. 17170  IF HJ$="101" THEN GOSUB 18730:GOSUB 17410:ML=B1:GOTO 16910
  617. 17180  IF HJ$="102" THEN GOSUB 18730:GOSUB 17410:DB=B1:GOTO 16910
  618. 17190  IF HJ$="103" THEN GOSUB 18730:GOSUB 17410:SB=B1:GOTO 16910
  619. 17200  IF HJ$="104" THEN GOSUB 17330:FB$=SJ$+":"+HJ$:GOTO 16910
  620. 17210  IF HJ$="105" THEN GOSUB 18730:GOSUB 17410:SC=B1:GOTO 16910
  621. 17220  IF HJ$="106" THEN GOSUB 18730:GOSUB 17410:SD=B1:GOTO 16910
  622. 17230  IF HJ$="107" THEN GOSUB 18730:GOSUB 17410:ND=B1:GOTO 16910
  623. 17240  IF HJ$="108" THEN GOTO 17460
  624. 17250  IF HJ$="109" THEN GOSUB 17460:MM=B1:GOTO 16910
  625. 17260  IF HJ$="110" THEN GOSUB 17460:FC=B1:GOTO 16910
  626. 17270  IF HJ$="111" THEN GOSUB 17460:UE=B1:GOTO 16910
  627. 17280  IF HJ$="112" THEN GOSUB 17330:PD$=SJ$+":"+HJ$:GOTO 16910
  628. 17290  IF HJ$="113" THEN LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Maximum number of password changes is? (0 or more)";:GOSUB 17420:CG=B1:IF B1<0 THEN 17290 ELSE 16910
  629. 17300  IF HJ$="114" THEN GOSUB 18730:GOSUB 17410:CH=B1:GOTO 16910
  630. 17310  IF HJ$="115" THEN HJ$="overwriting files on upload":GOSUB 17410:WC=B1:GOTO 16910
  631. 17315  IF HJ$="116" THEN GOTO 16850
  632. 17316  IF HJ$="117" THEN GOSUB 18730:GOSUB 17410:PC=B1:GOTO 16910
  633. 17320  GOTO 17120
  634. 17330  X$=HJ$:LOCATE 24,5:PRINT"Specify drive (A->"+M$+") where file for option "+X$+" will be located. ";
  635. 17340  LINE INPUT;HJ$
  636. 17350  IF LEN(HJ$)<>1 THEN HJ$=X$:GOTO 17330
  637. 17360  GOSUB 50654
  638. 17370  IF HJ$<"A" OR HJ$>M$ THEN HJ$=X$:GOTO 17330
  639. 17380  SJ$=HJ$
  640. 17390  GOSUB 14980
  641. 17400  RETURN
  642. 17410  LOCATE 24,1:PRINT SPC(79):LOCATE 24,1:PRINT "Security level for "+HJ$+" is? ";
  643. 17420  LINE INPUT;HK$
  644. 17430  B1=VAL(HK$)
  645. 17440  IF B1=0 AND HK$<>"0" THEN 17410
  646. 17450  RETURN
  647. 17460  IF HJ$="108" THEN CO$="SYSOP":GOTO 18480
  648. 17470  IF HJ$="109" THEN CO$="Main Menu":GOTO 18100
  649. 17480  IF HJ$="110" THEN CO$="File System":GOTO 17820
  650. 17490  IF HJ$="111" THEN CO$="Utilities
  651. 17500  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  652. 17510  LINE INPUT;X$
  653. 17520  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17500
  654. 17530  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  655. 17540  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 16:UA(I)=B1:NEXT:UE=B1:GOTO 16910
  656. 17550  IF X$="NO" OR X$="N" THEN GOTO 17570
  657. 17560  GOTO 17500
  658. 17570  GOSUB 25180
  659. 17600  LOCATE  5,10:PRINT"B)aud rate                     "+STR$(UA(1))
  660. 17602  LOCATE  6,10:PRINT"C)ase change                   "+STR$(UA(2))
  661. 17604  LOCATE  7,10:PRINT"F)ile transfer protocol        "+STR$(UA(3))
  662. 17610  LOCATE  8,10:PRINT"G)raphics                      "+STR$(UA(4))
  663. 17620  LOCATE  9,10:PRINT"H)elp                          "+STR$(UA(5))
  664. 17630  LOCATE 10,10:PRINT"L)ine feeds                    "+STR$(UA(6))
  665. 17640  LOCATE 11,10:PRINT"M)sg margin                    "+STR$(UA(7))
  666. 17650  LOCATE 12,10:PRINT"N)ulls                         "+STR$(UA(8))
  667. 17660  LOCATE 13,10:PRINT"P)ass word                     "+STR$(UA(9))
  668. 17670  LOCATE 14,10:PRINT"Q)uit to main menu             "+STR$(UA(10))
  669. 17675  LOCATE 15,10:PRINT"R)eview Default                "+STR$(UA(11))
  670. 17680  LOCATE 16,10:PRINT"S)tatistics                    "+STR$(UA(12))
  671. 17690  LOCATE 17,10:PRINT"T)ime                          "+STR$(UA(13))
  672. 17700  LOCATE 18,10:PRINT"U)serlog                       "+STR$(UA(14))
  673. 17705  LOCATE 19,10:PRINT"X)Expert on/off                "+STR$(UA(15))
  674. 17710  LOCATE 20,10:PRINT"!)Prompt sound                 "+STR$(UA(16))
  675. 17720  GOSUB 25210
  676. 17740  SWAP HJ$,X$
  677. 17750  GOSUB 50654
  678. 17760  SWAP HJ$,X$
  679. 17770  FF=INSTR("BCFGHLMNPQRSTUX!",X$)
  680. 17780  IF FF=0 THEN GOTO 17720
  681. 17790  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  682. 17800  UA(FF)=B1
  683. 17810  GOTO 17570
  684. 17820  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  685. 17830  LINE INPUT;X$
  686. 17840  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 17820
  687. 17850  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  688. 17860  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 10:FS(I)=B1:NEXT:FC=B1:GOTO 16910
  689. 17870  IF X$="NO" OR X$="N" THEN GOTO 17890
  690. 17880  GOTO 17820
  691. 17890  GOSUB 25180
  692. 17920  LOCATE  5,10:PRINT"D)ownload a file               "+STR$(FS(1))
  693. 17930  LOCATE  6,10:PRINT"G)oodbye                       "+STR$(FS(2))
  694. 17940  LOCATE  7,10:PRINT"H)elp                          "+STR$(FS(3))
  695. 17950  LOCATE  8,10:PRINT"L)ist files                    "+STR$(FS(4))
  696. 17960  LOCATE  9,10:PRINT"N)ew files                     "+STR$(FS(5))
  697. 17970  LOCATE 10,10:PRINT"Q)uit to main menu             "+STR$(FS(6))
  698. 17975  LOCATE 11,10:PRINT"S)earch directories for string "+STR$(FS(7))
  699. 17980  LOCATE 12,10:PRINT"U)pload a file                 "+STR$(FS(8))
  700. 17985  LOCATE 13,10:PRINT"X)Expert on/off                "+STR$(FS(9))
  701. 17990  LOCATE 14,10:PRINT"?) Xfer info                   "+STR$(FS(10))
  702. 18000  GOSUB 25210
  703. 18020  SWAP HJ$,X$
  704. 18030  GOSUB 50654
  705. 18040  SWAP HJ$,X$
  706. 18050  FF=INSTR("DGHLNQSUX?",X$)
  707. 18060  IF FF=0 THEN GOTO 18000
  708. 18070  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  709. 18080  FS(FF)=B1
  710. 18090  GOTO 17890
  711. 18100  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  712. 18110  LINE INPUT;X$
  713. 18120  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18100
  714. 18130  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  715. 18140  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 21:MD(I)=B1:NEXT:MM=B1:GOTO 16910
  716. 18150  IF X$="NO" OR X$="N" THEN GOTO 18170
  717. 18160  GOTO 18100
  718. 18170  GOSUB 25180
  719. 18175  LOCATE   3,8:PRINT"Command     Security Level
  720. 18176  LOCATE   3,37:PRINT"   Command        Security Level
  721. 18200  LOCATE  5,5:PRINT"B)ulletins            "+STR$(MD(1))
  722. 18210  LOCATE  6,5:PRINT"C)omments             "+STR$(MD(2))
  723. 18220  LOCATE  7,5:PRINT"D)oor subystem        "+STR$(MD(3))
  724. 18230  LOCATE  8,5:PRINT"E)nter message        "+STR$(MD(4))
  725. 18240  LOCATE  9,5:PRINT"F)iles system         "+STR$(MD(5))
  726. 18250  LOCATE 10,5:PRINT"G)oodbye              "+STR$(MD(6))
  727. 18260  LOCATE 11,5:PRINT"H)elp                 "+STR$(MD(7))
  728. 18270  LOCATE 12,5:PRINT"I)nitial welcome      "+STR$(MD(8))
  729. 18275  LOCATE 13,5:PRINT"J)oin a conference    "+STR$(MD(9))
  730. 18280  LOCATE 14,5:PRINT"K)ill messages        "+STR$(MD(10))
  731. 18290  LOCATE 15,5:PRINT"L)ines per page       "+STR$(MD(11))
  732. 18300  LOCATE  5,40:PRINT"O)perator             "+STR$(MD(12))
  733. 18310  LOCATE  6,40:PRINT"P)ersonal mail        "+STR$(MD(13))
  734. 18320  LOCATE  7,40:PRINT"Q)uick scan           "+STR$(MD(14))
  735. 18330  LOCATE  8,40:PRINT"R)ead messages        "+STR$(MD(15))
  736. 18340  LOCATE  9,40:PRINT"S)can messages        "+STR$(MD(16))
  737. 18350  LOCATE 10,40:PRINT"U)tilities (more)     "+STR$(MD(17))
  738. 18355  LOCATE 11,40:PRINT"V)iew a conference    "+STR$(MD(18))
  739. 18357  LOCATE 12,40:PRINT"W)ho's on other nodes "+STR$(MD(19))
  740. 18360  LOCATE 13,40:PRINT"X)Expert on/off       "+STR$(MD(20))
  741. 18370  LOCATE 14,40:PRINT"?)Functions           "+STR$(MD(21))
  742. 18380  GOSUB 25210
  743. 18400  SWAP HJ$,X$
  744. 18410  GOSUB 50654
  745. 18420  SWAP HJ$,X$
  746. 18430  FF=INSTR("BCDEFGHIJKLOPQRSUVWX?",X$)
  747. 18440  IF FF=0 THEN GOTO 18380
  748. 18450  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  749. 18460  MD(FF)=B1
  750. 18470  GOTO 18170
  751. 18480  LOCATE 24,1:PRINT"Set ALL the "+CO$+" commands to the SAME security level? (YES or NO)";
  752. 18490  LINE INPUT;X$
  753. 18500  IF LEN(X$)<1 OR LEN(X$)>3 THEN GOTO 18480
  754. 18510  SWAP HJ$,X$:GOSUB 50654:SWAP HJ$,X$
  755. 18520  IF X$="YES" OR X$="Y" THEN HJ$="all "+CO$+" commands":GOSUB 17410:FOR I=1 TO 7:SA(I)=B1:NEXT:SF=B1:GOTO 16910
  756. 18530  IF X$="NO" OR X$="N" THEN GOTO 18550
  757. 18540  GOTO 18480
  758. 18550  GOSUB 25180
  759. 18580  LOCATE  5,10:PRINT" 1 List comments               "+STR$(SA(1))
  760. 18590  LOCATE  6,10:PRINT" 2 List callers log            "+STR$(SA(2))
  761. 18600  LOCATE  7,10:PRINT" 3 Recover a Msg               "+STR$(SA(3))
  762. 18610  LOCATE  8,10:PRINT" 4 Erase comments              "+STR$(SA(4))
  763. 18620  LOCATE  9,10:PRINT" 5 Users maintenance           "+STR$(SA(5))
  764. 18630  LOCATE 10,10:PRINT" 6 Toggle page bell            "+STR$(SA(6))
  765. 18650  LOCATE 11,10:PRINT" 7 Exit to DOS 2               "+STR$(SA(7))
  766. 18670  GOSUB 25210
  767. 18690  IF VAL(X$)<1 OR VAL(X$)>7 THEN GOTO 18670
  768. 18700  HJ$="all "+CO$+" '"+X$+"' commands":GOSUB 17410
  769. 18710  SA(VAL(X$))=B1
  770. 18720  GOTO 18550
  771. 18730  HJ$="option "+HJ$:RETURN
  772. 18740  LOCATE 24,1:PRINT SPC(79);:IF M5$="NOVICE" THEN XPR=0
  773. 18750  IF M5$="EXPERT" THEN XPR=-1
  774. 18760  FD$=M7$+M6$
  775. 18770  IF M10$="OFF" THEN BE=0
  776. 18780  IF M10$="ON" THEN BE=-1
  777. 18790  IF M11$="YES" THEN MW$=". "+CHR$(7)
  778. 18800  IF M11$="NO" THEN MW$=". "
  779. 18810  IF M12$="COMPILED" THEN CL=TA
  780. 18820  IF M12$="BASICA" THEN CL=FA
  781. 18830  IF M14$="OFF" THEN MID$(SG$,4,1)="0"
  782. 18840  IF M14$="ON" THEN MID$(SG$,4,1)="1"
  783. 18850  IF M15$="YES" THEN OD=TA
  784. 18860  IF M15$="NO" THEN OD=FA
  785. 18870  IF M16$="YES" THEN RC=TA
  786. 18880  IF M16$="NO" THEN RC=FA
  787. 18890  IF M17$="YES" THEN BF=TA
  788. 18900  IF M17$="NO" THEN BF=FA
  789. 18910  IF M18$="YES" THEN OA=TA
  790. 18920  IF M18$="NO" THEN OA=FA
  791. 18930  IF M19$="YES" THEN UD=TA
  792. 18940  IF M19$="NO" THEN UD=FA
  793. 18945  IF M20$="YES" THEN CK=TA
  794. 18946  IF M20$="NO" THEN CK=FA
  795. 18950  IF M21$="YES" THEN WB=TA
  796. 18960  IF M21$="NO" THEN WB=FA
  797. 18970  IF M26$="YES" THEN M26=TA
  798. 18980  IF M26$="NO" THEN M26=FA
  799. 18985  IF M28$="YES" THEN M28=TA
  800. 18986  IF M28$="NO" THEN M28=FA
  801. 18987  IF M29$="YES" THEN M29=TA
  802. 18988  IF M29$="NO" THEN M29=FA
  803. 18989  IF IC THEN F=1:GOSUB 50300
  804. 18990  OPEN "O",#1,CA$
  805. 19000  IF INSTR(RD$,":")<1 THEN RD$=RD$+":
  806. 19010  IF INSTR(MO$,":")<1 THEN MO$=MO$+":
  807. 19020  IF INSTR(SJ$,":")<1 THEN SJ$=SJ$+":
  808. 19030  IF INSTR(TB$,":")<1 THEN TB$=TB$+":
  809. 19031  IF INSTR(BD$,":")<1 THEN BD$=BD$+":
  810. 19032  T$=DIR$:IF INSTR(DIR$,".") THEN T$=MID$(DIR$,INSTR(DIR$,".")+1,LEN(DIR$))
  811. 19033  S$=UF$:IF INSTR(UF$,".") THEN S$=MID$(UF$,1,INSTR(UF$,".")-1)
  812. 19034  DIR$=T$
  813. 19035  UF$=S$
  814. 19040  WRITE #1,FD$,PA$,PB$,NB$,NC$,CE,AC,AD,TC!,MP,LA,UF$,XPR,BG,BE,PRT,CL,MG$,MH$,MI$,MJ$,MK$,CD$,VA,OA,UD,PL,LW,WB,MO$
  815. 19050  IF INSTR(BA$,":")<1 THEN BA$=BD$+BA$
  816. 19060  IF INSTR(BB$,":")<1 THEN BB$=BD$+BB$
  817. 19070  FOR I=1 TO 9
  818. 19080  HA$(I)=HB$+":"+HA$+RIGHT$(STR$(I),1)
  819. 19090  NEXT
  820. 19100  MD(6)=ML:FS(2)=ML
  821. 19105  IF ME$<>MAINMSG$ THEN ME$=MAINMSG$
  822. 19106  IF UC$<>MAINUSR$ THEN UC$=MAINUSR$
  823. 19110  WRITE #1,ME$,MF$,CB$,CC$,UC$,WA$,NA$,DIR$,M13$,OD,SG$,TB$,DA,FGR,BGR,BDR,RB$,CI$
  824. 19120  WRITE #1,OB$,OC$,HA$(1),HA$(2),HA$(3),HA$(4),HA$(5),HA$(6),HA$(7),HA$(8),HA$(9),BA$,BB$,BD$,RC,BF,SD,MC,SE,CF,UB,MQ!,BC$
  825. 19130  WRITE #1,ML,DB,SB,FB$,SC,KA$,ND,SA(1),SA(2),SA(3),SA(4),SA(5),SA(6),SA(7),PD$,CG,CH,WC,MN,M26
  826. 19140  WRITE #1,MD(1),MD(2),MD(3),MD(4),MD(5),MD(6),MD(7),MD(8),MD(9),MD(10),MD(11),MD(12),MD(13),MD(14),MD(15),MD(16),MD(17),MD(18),MD(19),MD(20),MD(21),SY$,TY
  827. 19150  WRITE #1,FS(1),FS(2),FS(3),FS(4),FS(5),FS(6),FS(7),FS(8),FS(9),FS(10),UA(1),UA(2),UA(3),UA(4),UA(5),UA(6),UA(7),UA(8),UA(9),UA(10),UA(11),UA(12),UA(13),UA(14),UA(15),UA(16),UPX!,CM,CK,FF$,M28,M29,MW$,B$
  828. 19160  WRITE #1,SM1$,SM2$,SM3$,SM4$,SM5$,SM6$,SM7$,SM8$,SM9$,SH$,SI$,PC
  829. 19170  CLOSE #1
  830. 19175  IF F=1 THEN GOSUB 50300
  831. 19180  NAME UC$ AS UC$
  832. 19190  GOTO 60370
  833. 19200  ID=0
  834. 19220  GOSUB 22760
  835. 19230  IF ID=1 THEN GOTO 19390
  836. 19240  ID=1
  837. 19250  IE=UG+1
  838. 19260  IG=UG
  839. 19270  IF IG<UB THEN 19400
  840. 19280  IF IG=UB THEN USW=1:GOTO 20030
  841. 19290  CLS
  842. 19300  GOSUB 60380
  843. 19310  LOCATE 15,5:PRINT UC$+" file contains"+STR$(UG)+" records!
  844. 19320  LOCATE 17,5:PRINT "Option 124 requested a "+UC$+" file of"+STR$(UB)+" records.
  845. 19325  LOCATE 19,5:PRINT "RBBS-PC's 'checkpoint record' shows "+STR$(IE)+" records in use in "+UC$+".
  846. 19330  GOSUB 60380
  847. 19340  IF UB+1=IE THEN LOCATE 21,5:PRINT "USERS file full!  Increase it's size? (Yes or No).":PRINT A$:GOSUB 22380:ON AB GOTO 20030,19350,19340,19340
  848. 19350  LOCATE 21,5:PRINT "Please revise option 124 to be equal to or greater than"+STR$(IE):IA!=FNTI!+10
  849. 19360  GOSUB 60440
  850. 19380  GOTO 21550
  851. 19390  IF UB<IE THEN 19300
  852. 19391  IF UB=IG THEN USW=1:GOTO 20030
  853. 19400  D.FLAG = -1 'SKIP DATE CHECK IN REHASHING
  854. 19410  GOSUB 24110
  855. 19415  GOSUB 50380
  856. 19450  GOSUB 50340
  857. 19930  GOTO 20030
  858. 19940  GOSUB 50000
  859. 20030  NAME ME$ AS ME$
  860. 20040  GOTO 60370
  861. 20050  MR!=MQ!:UH=UB:GOSUB 22770:MQ!=MR!:UB=UH:OPEN "R",1,ME$
  862. 20060  FIELD 1,128 AS R$
  863. 20070  GET 1,1
  864. 20080  MSW=0
  865. 20090  NAM$=SPACE$(31)
  866. 20110  IF NAM$<>MID$(R$,21,31)THEN 21010
  867. 20115  OE=VAL(MID$(R$,127,2))
  868. 20130  IF MQ!=IH AND OE=MC THEN MSW=1:CLOSE 1:GOTO 24970
  869. 20140  IF MQ!>II AND OE=MC THEN GOTO 20340
  870. 20150  IF MQ!<II THEN GOTO 20170
  871. 20155  IF MC<=OE THEN GOTO 20340
  872. 20160  IF (IH-II)=>(MC-OE) THEN GOTO 20340
  873. 20161  CLS
  874. 20162  GOSUB 60380
  875. 20163  LOCATE 15,5:PRINT ME$+" file contains"+STR$(OE)+" nodes!
  876. 20164  LOCATE 17,5:PRINT "Option 121 requested a "+ME$+" file with"+STR$(MC)+" nodes.
  877. 20165  GOSUB 60380
  878. 20166  LOCATE 19,5:PRINT "Please revise option 124 to be equal to or greater than"+STR$(MQ!+(MC-OE))
  879. 20167  GOTO 20240
  880. 20170  CLS
  881. 20180  GOSUB 60380
  882. 20190  LOCATE 15,5:PRINT ME$+" file contains"+STR$(II-1)+" active records!
  883. 20200  LOCATE 17,5:PRINT "Option 125 requested a "+ME$+" file of"+STR$(MQ!)+" records.
  884. 20210  GOSUB 60380
  885. 20230  LOCATE 19,5:PRINT "Please revise option 125 to be equal to or greater than"+STR$(II)
  886. 20240  IA!=FNTI!+10
  887. 20250  GOSUB 60440
  888. 20260  CLOSE 1
  889. 20270  GOTO 21550
  890. 20340  MS=IJ
  891. 20350  A$=ME$:GOSUB 50095:OPEN "R",2,A$,128
  892. 20360  FIELD 2,128 AS RR$
  893. 20370  MID$(R$,127,2)=STR$(MC):PUT 1,1
  894. 20380  IF MC<=OE THEN OE=MC
  895. 20390  GOSUB 50340
  896. 20410  FOR J!=1 TO OE+1
  897. 20420  GET 1,J!
  898. 20430    LSET RR$=R$
  899. 20440    PUT 2                       ' write out existing "door" records
  900. 20450    GOSUB 25030
  901. 20460  NEXT
  902. 20470  IF MC<=OE THEN GOTO 20530
  903. 20480  FOR J! = OE+1 TO MC
  904. 20490    GOSUB 20800
  905. 20500    PUT 2                       ' write out expansion "door" records
  906. 20510    GOSUB 25030
  907. 20520  NEXT
  908. 20530  GET 1,MS                 ' point to first message record
  909. 20540  IF IJ=II THEN IJ=LOC(2)+1:II=IJ:GOTO 20630
  910. 20550  SK=IJ
  911. 20560  IJ=LOC(2)+1
  912. 20570  FOR J!=SK TO II-1
  913. 20580  GET 1,J!
  914. 20590    LSET RR$=R$
  915. 20600    PUT 2                       ' write out existing message records
  916. 20610    GOSUB 25030
  917. 20620  NEXT
  918. 20630  CLOSE 1
  919. 20640  IK=LOC(2)+1
  920. 20650  IF MQ!<II THEN GOTO 20710
  921. 20660  FOR J!=II TO MQ!
  922. 20670    LSET RR$ = SPACE$(128)
  923. 20680    PUT 2,J!                    ' write out expansion message records
  924. 20690    GOSUB 25030
  925. 20700  NEXT
  926. 20710  II=IK:IH=LOC(2)
  927. 20720  GOSUB 21430
  928. 20730  GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+ME$+" file? (YES or NO)?";
  929. 20740  GOSUB 22380:ON AB GOTO 20750,20770,20730,20730
  930. 20750  A$=ME$:GOSUB 50096:NAME ME$ AS A$
  931. 20760  GOTO 20780
  932. 20770  KILL ME$
  933. 20780  A$=ME$:GOSUB 50095:NAME A$ AS ME$
  934. 20790  GOTO 24970
  935. 20800  LSET RR$=SPACE$(31)+"-1 0 0 0 0 0 0 0    0 0 0I":RETURN
  936. 20810  GOSUB 50100
  937. 21000  GOTO 24970
  938. 21010  LOCATE 22,1:PRINT SPC(79);:LOCATE 22,15:PRINT"Reformat old (pre CPC12.5) "+ME$+" file? (YES or NO)?";
  939. 21020  GOSUB 22380:ON AB GOTO 24970,21030,21010,21010
  940. 21030  A$=ME$:GOSUB 50095:OPEN "R",2,A$,128
  941. 21040  FIELD 2,128 AS RR$
  942. 21050  LSET RR$=SPACE$(126)+STR$(MC)
  943. 21060  LE=VAL(LEFT$(R$,8))
  944. 21070  CJ=VAL(MID$(R$,11,10))
  945. 21080  MID$(RR$,1,8)=STR$(LE)
  946. 21090  MID$(RR$,11,10)=STR$(CJ)
  947. 21100  PUT 2,1                     ' write out first record
  948. 21110  GOSUB 25030
  949. 21120  LSET RR$=SPACE$(128)
  950. 21130  MID$(RR$,1,31)=MID$(R$,21,31)
  951. 21140  MID$(RR$,32,25)=MID$(R$,9,2)+MID$(R$,52,23)
  952. 21150  MID$(RR$,57,1)="I
  953. 21160  PUT 2                       ' write first "door" record of old msg file
  954. 21170  A2!=1
  955. 21180  A3!=MC
  956. 21190  A4!=LOF(1)/128-1
  957. 21200  IF MC=1 GOTO 21260
  958. 21210  FOR J! = A2!+1 TO A3!
  959. 21220    GOSUB 20800
  960. 21230    PUT 2                       ' write out expansion "door" records
  961. 21240    GOSUB 25030
  962. 21250  NEXT
  963. 21260  IJ=LOC(2)+1                ' point to first message record
  964. 21270  FOR J! = 1 TO A4!
  965. 21280    GET 1
  966. 21290    LSET RR$=R$
  967. 21300    PUT 2                       ' write out existing message records
  968. 21310    GOSUB 25030
  969. 21320  NEXT
  970. 21330  CLOSE 1
  971. 21340  II=LOC(2)                  ' point to next available message record
  972. 21350  IF LOC(2)=>MQ! GOTO 21420
  973. 21360  II=LOC(2)+1                ' point to next available message record
  974. 21370  FOR J!=II TO MQ!
  975. 21380    LSET RR$ = SPACE$(128)
  976. 21390    PUT 2,J!                    ' write out expansion message records
  977. 21400    GOSUB 25030
  978. 21410  NEXT
  979. 21420  IH=LOC(2)                  ' point to last available message record
  980. 21422  GOSUB 21430:GOTO 20730
  981. 21430  GET 2,1
  982. 21435  IF IB THEN ID=IL:IE=IM:UB=IN
  983. 21439  MID$(RR$,52,38)=SPACE$(38)   'reset all counters before filling
  984. 21440  MID$(RR$,52,5)=STR$(ID)  '52-56 = first rec. of msgs file
  985. 21450  MID$(RR$,57,5)=STR$(IE)  '57-61 = next avail. user record
  986. 21460  MID$(RR$,62,5)=STR$(UB)  '62-66 = last rec. of user file
  987. 21470  MID$(RR$,67,1)=SPACE$(1)     '   67 = RBBS curretnly reserving users
  988. 21480  MID$(RR$,68,7)=STR$(IJ)   '68-74 = first rec. of msgs file
  989. 21490  MID$(RR$,75,7)=STR$(II)   '75-81 = next avail. msgs record
  990. 21500  MID$(RR$,82,7)=STR$(IH)   '82-88 = last rec. of msgs file
  991. 21510  MID$(RR$,89,1)=SPACE$(1)     '   89 = RBBS curretnly reserving msgs
  992. 21520  PUT 2,1
  993. 21530  CLOSE 2
  994. 21540  RETURN
  995. 21550  CN=7
  996. 21560  GOSUB 22760
  997. 21570  GOSUB 24800
  998. 21580  LOCATE  3,9:PRINT"121. Maximum number of concurrent RBBS-PC's  -------"STR$(MC)
  999. 21590  IF MC=1 THEN MT$="single RBBS-PC copy " ELSE MT$="concurrent RBBS-PC's":GOSUB 21900:IF SE<0 OR SE>4 THEN GOTO 21810
  1000. 21600  LOCATE  4,9:PRINT"122. Environment running "+MT$+" ------ "+EA$
  1001. 21610  LOCATE  5,9:PRINT"123. RBBS-PC 'recycle' method when users log off --- "+RA$
  1002. 21615  IF MQ!<((5*MP)+1+MC) THEN MQ!=(5*MP)+1+MC
  1003. 21620  LOCATE  6,9:PRINT"124. Max. # users allowed in "+UC$+" file ";STRING$(17-LEN(UC$),"-");STR$(UB)
  1004. 21630  LOCATE  7,9:PRINT"125. Max. # records in "+ME$+" file ";STRING$(23-LEN(ME$),"-");STR$(MQ!)
  1005. 21635  LOCATE  8,9:PRINT"126. Maximum number of messages allowed ------------"STR$(MP)
  1006. 21636  LOCATE  9,9:PRINT"127. Conference File Maintenance.
  1007. 21640  GOSUB 24890
  1008. 21650  GOSUB 22160
  1009. 21660  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,16910,23000,21680
  1010. 21670  GOTO 21650
  1011. 21680  GOSUB 50340
  1012. 21690  IF HJ$="121" THEN GOTO 21750
  1013. 21700  IF HJ$="122" THEN GOTO 21810
  1014. 21710  IF HJ$="123" THEN GOTO 21950
  1015. 21720  IF HJ$="125" THEN GOSUB 22040:GOTO 21570
  1016. 21730  IF HJ$="124" THEN GOSUB 22100:GOTO 21570
  1017. 21735  IF HJ$="126" THEN GOTO 13890
  1018. 21736  IF HJ$="127" THEN GOTO 25040
  1019. 21740  GOTO 21640
  1020. 21750  GOSUB 50340:LOCATE 24,5:PRINT"Maximum number of conurrent RBBS-PC's? (a value between 1 and 36)";
  1021. 21760  LINE INPUT;HJ$
  1022. 21770  B1=VAL(HJ$)
  1023. 21780  IF B1<1 OR B1>36 THEN GOTO 21750
  1024. 21790  MC=B1
  1025. 21800  GOTO 21550
  1026. 21810  CLS:LOCATE  3,5:PRINT"RBBS-PC is supported in the following:
  1027. 21820  LOCATE  5,20:PRINT"Environment
  1028. 21825  LOCATE  7,10:PRINT"0. Single RBBS-PC in an IBM DOS environment
  1029. 21830  LOCATE  9,10:PRINT"1. MultiLink (multi-tasking under single DOS)
  1030. 21840  LOCATE 11,10:PRINT"2. Omninet (CORVUS)
  1031. 21850  LOCATE 13,10:PRINT"3. PC-NET (Orchid)
  1032. 21860  LOCATE 15,10:PRINT"4. Top-View (IBM's multi-tasking for DOS 3.1) -- not yet supported
  1033. 21870  GOSUB 50340:LOCATE 24,5:PRINT"Select environment (0 to 4, CR to end)";
  1034. 21880  LINE INPUT;X$:IF X$="" THEN GOTO 21550 ELSE SE=VAL(X$):GOSUB 21890:GOTO 21550
  1035. 21890  IF SE<0 OR SE>4 GOTO 21870
  1036. 21895  IF SE=0 THEN EA$="IBM's DOS
  1037. 21900  IF SE=1 THEN EA$="MultiLink
  1038. 21910  IF SE=2 THEN EA$="Omninet
  1039. 21920  IF SE=3 THEN EA$="PC-NET
  1040. 21930  IF SE=4 THEN EA$="Top-View -- future
  1041. 21940  RETURN
  1042. 21950  GOSUB 50340:LOCATE 24,5:PRINT"How RBBS-PC recycles when users logs off (SYSTEM or INTERNAL)? ";
  1043. 21960  LINE INPUT;HJ$
  1044. 21970  IF LEN(HJ$)<1 OR LEN(HJ$)>8 THEN GOTO 21950
  1045. 21980  GOSUB 50654
  1046. 21990  IF HJ$="SYSTEM" THEN CF=1:GOTO 22020
  1047. 22000  IF HJ$="INTERNAL" THEN CF=0:GOTO 22020
  1048. 22010  GOTO 21950
  1049. 22020  RA$=HJ$
  1050. 22030  GOTO 21550
  1051. 22040  GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+ME$+" file (>"+STR$((5*MP)+1+MC)+"):";
  1052. 22050  LINE INPUT;HJ$
  1053. 22060  B1!=VAL(HJ$)
  1054. 22070  IF B1!<(5*MP) OR B1!>1E+07 THEN GOTO 22040
  1055. 22080  MQ!=B1!
  1056. 22090  RETURN
  1057. 22100  GOSUB 50340:LOCATE 24,5:PRINT"Max. records in preformatted "+UC$+" file:";
  1058. 22110  LINE INPUT;HJ$
  1059. 22120  B1=VAL(HJ$)
  1060. 22130  IF B1<1 OR B1>99999 THEN GOTO 22100
  1061. 22140  B2=2:WHILE B2<B1:B2=B2*2:WEND:UB=B2
  1062. 22150  RETURN
  1063. 22160  I!=FRE(C$):Y$=INKEY$
  1064. 22170  IX=0
  1065. 22180  IF LEN(Y$)<1 THEN GOTO 22160
  1066. 22190  IF LEN(Y$)=2 THEN GOTO 22240
  1067. 22200  IF ASC(Y$)=13 THEN IX=12:RETURN
  1068. 22205  IF ASC(Y$)=8 AND LEN(HJ$)>0 THEN HJ$=LEFT$(HJ$,LEN(HJ$)-1):PRINT CHR$(29)+" "+CHR$(29);:GOTO 22160
  1069. 22206  IF ASC(Y$)<48 OR ASC(Y$)>57 THEN 22160
  1070. 22210  PRINT Y$;
  1071. 22220  HJ$=HJ$+Y$:IF LEN(HJ$)>4 THEN IX=12
  1072. 22230  RETURN
  1073. 22240  IX=ASC(RIGHT$(Y$,1))
  1074. 22250  Y$="
  1075. 22260  IF IX<59 OR IX>81 THEN RETURN
  1076. 22270  IX=IX-58
  1077. 22280  IF IX<9 THEN RETURN
  1078. 22290  IF IX=15 THEN IX=10:RETURN
  1079. 22300  IF IX=21 THEN IX=9:RETURN
  1080. 22310  IF IX=23 THEN IX=11:RETURN
  1081. 22320  IX=0
  1082. 22330  RETURN
  1083. 22340  LOCATE 22,15:PRINT SPC(64);:LOCATE 22,15:PRINT TIME$;" ";:COLOR 0,7:PRINT " Reading Data, Wait a sec !!! ";:COLOR FGR,BGR,BDR:RETURN
  1084. 22350  GOSUB 50340
  1085. 22360  LOCATE 24,1:PRINT SPC(79);:LOCATE 24,5:PRINT"Are you satisfied with all changes ? (Y/N) or <Q)uit ";
  1086. 22370  GOSUB 22380:ON AB GOTO 12190,18740,60360,22350
  1087. 22380  LINE INPUT;HJ$
  1088. 22390  IF LEN(HJ$)<1 OR LEN(HJ$)>3 THEN GOTO 22470
  1089. 22400  GOSUB 50654
  1090. 22410  IF HJ$="NO" THEN AB=1:RETURN
  1091. 22420  IF HJ$="N" THEN HJ$="NO":AB=1:RETURN
  1092. 22430  IF HJ$="YES" THEN AB=2:RETURN
  1093. 22440  IF HJ$="Y" THEN HJ$="YES":AB=2:RETURN
  1094. 22450  IF HJ$="QUIT" THEN AB=3:RETURN
  1095. 22460  IF HJ$="Q" THEN AB=3:RETURN
  1096. 22470  AB=4:RETURN
  1097. 22480  GOSUB 50340:LOCATE 24,5:PRINT"To which copy of RBBS-PC will these options apply (1 to 36)?";
  1098. 22490  LINE INPUT;HJ$
  1099. 22500  IF LEN(HJ$)<1 OR LEN(HJ$)>2 THEN GOTO 22480
  1100. 22510  IF VAL(HJ$)<1 OR VAL(HJ$)>36 THEN GOTO 22480
  1101. 22520  MID$(CA$,5,1)=MID$("1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ",VAL(HJ$),1)
  1102. 22530  RETURN
  1103. 22540  GOSUB 50340:PRINT "Not implemented yet!";
  1104. 22550  RETURN
  1105. 22560  OPEN "R",2,ME$,128
  1106. 22570  FIELD 2,128 AS RR$
  1107. 22580  GET 2,1
  1108. 22590  MID$(RR$,1,8)=SPACE$(8):MID$(RR$,1,8)=STR$(IO)  ' 1- 8 = number of last message on system
  1109. 22599  MID$(RR$,52,38)=SPACE$(38)   'reset all counters before filling
  1110. 22600  MID$(RR$,52,5)=STR$(ID)  '52-56 = first rec. of msgs file
  1111. 22610  IF VAL(MID$(RR$,57,5))<IE AND VAL(MID$(RR$,57,5))>0 THEN IE=VAL(MID$(RR$,57,5))
  1112. 22620  IF IE<ID THEN IE=ID
  1113. 22630  MID$(RR$,57,5)=STR$(IE)  '57-61 = next avail. user record
  1114. 22640  MID$(RR$,62,5)=STR$(IG)  '62-66 = last rec. of user file
  1115. 22650  MID$(RR$,67,1)=SPACE$(1)     '   67 = RBBS curretnly reserving users
  1116. 22660  IF MSW AND VAL (MID$(RR$,68,21))>0 THEN GOTO 22730
  1117. 22670  MID$(RR$,68,7)=STR$(IJ)   '68-74 = first rec. of msgs file
  1118. 22680  IF VAL(MID$(RR$,75,7))<II AND VAL(MID$(RR$,75,7))>0 THEN II=VAL(MID$(RR$,75,7))
  1119. 22690  IF II<IJ THEN II=IJ
  1120. 22700  MID$(RR$,75,7)=STR$(II)   '75-81 = next avail. msgs record
  1121. 22710  MID$(RR$,82,7)=STR$(IH)   '82-88 = last rec. of msgs file
  1122. 22720  MID$(RR$,89,1)=SPACE$(1)     '   89 = RBBS curretnly reserving msgs
  1123. 22730  PUT 2,1
  1124. 22740  CLOSE 2
  1125. 22750  RETURN
  1126. 22760  NAME ME$ AS ME$
  1127. 22770  OPEN "R",2,ME$,128
  1128. 22780  FIELD 2,128 AS RR$
  1129. 22790  GET 2,1
  1130. 22795  NAM$=SPACE$(31)
  1131. 22800  IF NAM$<>MID$(RR$,21,31)THEN 22920
  1132. 22810  IO=VAL(MID$(RR$,1,8))  ' 1- 8 = number of last message on system
  1133. 22820  ID=VAL(MID$(RR$,52,5))   '52-56 = first rec. of user file
  1134. 22830  IE=VAL(MID$(RR$,57,5))   '57-61 = next avail. user record
  1135. 22840  IG=VAL(MID$(RR$,62,5))   '62-66 = last rec. of user file
  1136. 22850  IJ=VAL(MID$(RR$,68,7))    '68-74 = first rec. of msgs file
  1137. 22860  II=VAL(MID$(RR$,75,7))    '75-81 = next avail. msgs record
  1138. 22870  IH=VAL(MID$(RR$,82,7))    '82-88 = last rec. of msgs file
  1139. 22880  CLOSE 2
  1140. 22910  RETURN
  1141. 22920  MU!=LOF(2)/128+1+MC
  1142. 22930  CLOSE 2
  1143. 22940  NAME UC$ AS UC$
  1144. 22950  OPEN "R",2,UC$,128
  1145. 22960  FIELD 2,128 AS RR$
  1146. 22970  UG=LOF(2)/128
  1147. 22980  CLOSE 2
  1148. 22990  RETURN
  1149. 23000  CN=8
  1150. 23010  GOSUB 24800:RB=0
  1151. 23020  LOCATE  3,9:PRINT"141. Pack "+ME$+" file.
  1152. 23030  LOCATE  4,9:PRINT"142. Rebuild "+UC$+" file.
  1153. 23040  LOCATE  5,9:PRINT"143. Print "+ME$+" 'header' records.
  1154. 23050  LOCATE  6,9:PRINT"144. Renumber messages in "+ME$+" file.
  1155. 23055  LOCATE  7,9:PRINT"145. Repair messages in "+ME$+" file.
  1156. 23056  LOCATE  8,9:PRINT"146. Initialize Hayes 2400 firmware for RBBS-PC.
  1157. 23060  A$="Enter number of utility function, END to terminate, PgUp/PgDn to scroll.":GOSUB 24900
  1158. 23070  GOSUB 22160
  1159. 23080  IF IX THEN ON IX GOTO 12360,14200,14570,15340,16130,16910,21550,23000,22350,21550,12190,23100
  1160. 23090  GOTO 23070
  1161. 23100  GOSUB 50340
  1162. 23110  IF HJ$="141" THEN GOTO 23160
  1163. 23120  IF HJ$="142" THEN D.FLAG=0:GOSUB 24110:IF F=1 THEN GOSUB 50300:GOTO 23000 ELSE GOTO 23000
  1164. 23130  IF HJ$="143" THEN GOTO 23630
  1165. 23140  IF HJ$="144" THEN GOTO 23740
  1166. 23145  IF HJ$="145" THEN RB=1:GOTO 23630
  1167. 23146  IF HJ$="146" THEN GOSUB 23731:GOTO 23000
  1168. 23150  GOTO 23060
  1169. 23160  GOSUB 22760
  1170. 23170  OPEN "R",1,ME$
  1171. 23180  FIELD 1,128 AS R$
  1172. 23185  IF LOF(1)=0 THEN CLOSE 1:GOSUB 50100:GOTO 23585
  1173. 23190  A$=ME$:GOSUB 50095:OPEN "R",2,A$,128
  1174. 23200  FIELD 2,128 AS RR$
  1175. 23210  FOR J! = 1 TO IJ-1
  1176. 23220    GET 1
  1177. 23225    IF J!=1 THEN LE=VAL(LEFT$(R$,8))
  1178. 23230    LSET RR$=R$                 ' write out first record and then
  1179. 23240    PUT 2                       ' write out existing "door" records
  1180. 23250  NEXT
  1181. 23260  FOR J! = IJ TO II-1
  1182. 23270    GET 1,J!
  1183. 23280    IF MID$(R$,116,1)=CHR$(225) THEN PRINT"Msg #"+LEFT$(R$,5)+" copied...":GOTO 23300
  1184. 23290    IF MID$(R$,116,1)=CHR$(226) THEN GOSUB 23600:GOTO 23270
  1185. 23300    LSET RR$=R$
  1186. 23310    PUT 2                       ' write out existing message records
  1187. 23320  NEXT
  1188. 23330  II=LOC(2)                  ' point to next available message record
  1189. 23340  IF LOC(2)=>IH GOTO 23410
  1190. 23350  II=LOC(2)+1                ' point to next available message record
  1191. 23360  FOR J!=II TO IH
  1192. 23370    LSET RR$ = SPACE$(128)
  1193. 23380    PUT 2,J!                    ' write out expansion message records
  1194. 23390    GOSUB 25030
  1195. 23400  NEXT
  1196. 23410  IH=LOC(2)                  ' point to last available message record
  1197. 23420  GOSUB 21430
  1198. 23520  CLOSE 1
  1199. 23530  GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+ME$+" file? (YES or NO)?";
  1200. 23540  GOSUB 22380:ON AB GOTO 23550,23570,23530,23530
  1201. 23550  A$=ME$:GOSUB 50096:NAME ME$ AS A$
  1202. 23560  GOTO 23580
  1203. 23570  KILL ME$
  1204. 23580  A$=ME$:GOSUB 50095:NAME A$ AS ME$
  1205. 23585  IF F=1 THEN GOSUB 50300
  1206. 23590  GOTO 23000
  1207. 23600  PRINT"Msg #"+LEFT$(R$,5)+"          purged...":IF VAL(MID$(R$,2,4))=LE THEN GOTO 23330
  1208. 23610  J!=LOC(1)+VAL(MID$(R$,118,6))
  1209. 23620  RETURN
  1210. 23630  GOSUB 22760
  1211. 23640  OPEN "R",1,ME$
  1212. 23650  FIELD 1,128 AS R$
  1213. 23660  J!=IJ
  1214. 23670  FOR I=IJ TO II-1
  1215. 23680    GET 1,J!
  1216. 23684    GOSUB 23610
  1217. 23686    I$="K":IF MID$(R$,116,1)=CHR$(225) THEN I$="A
  1218. 23715    IF LOC(1)>II-1 THEN GOTO 23730
  1219. 23717    PRINT LEFT$(R$,5)+" "+MID$(R$,76,25)+" "+MID$(R$,101,15)+" "+I$+" "+MID$(R$,118,6)+" "+STR$(LOC(1))+" " +STR$(J!):SK=VAL(MID$(R$,2,4))
  1220. 23720    IF RB AND VAL(MID$(R$,2,4))=IO THEN GOTO 23730
  1221. 23722    IF RB THEN GOSUB 50580
  1222. 23725  NEXT
  1223. 23730  GET 1,1:MID$(R$,1,8)=SPACE$(8):MID$(R$,1,8)=STR$(SK):PUT 1,1:CLOSE 1:IA!=FNTI!+5:GOSUB 60440:GOTO 23000
  1224. 23731  LOCATE 25,5:PRINT "Setting Hayes 2400 firmware switches for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440
  1225. 23732  A$="AT&C1&D2S0=0B1E0":LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Prevent remote digitial loop back tests? ";:GOSUB 22380:ON AB GOTO 23734,23733,23732,23732
  1226. 23733  A$=A$+"&T5"
  1227. 23734  OPEN M13$+":2400,N,8,1,RS,CD,DS" AS #3: PRINT #3,"ATZ":IA!=FNTI!+3:GOSUB 60440:PRINT #3,A$+"&W":GOSUB 60440
  1228. 23735  CLOSE #3:LOCATE 25,5:PRINT SPACE$(74);:LOCATE 25,5:PRINT "Hayes 2400 firmware switches are now set for RBBS-PC on "+M13$;:IA!=FNTI!+3:GOSUB 60440:RETURN
  1229. 23740  GOSUB 22760
  1230. 23750  GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with OLD message # (<"+STR$(IO+1)+")";
  1231. 23760  LINE INPUT;HJ$
  1232. 23770  IF HJ$="" THEN GOTO 23000
  1233. 23780  B1=VAL(HJ$)
  1234. 23790  IF B1<1 OR B1>IO THEN GOTO 23750
  1235. 23800  RE=B1
  1236. 23810  GOSUB 50340:LOCATE 24,5:PRINT"Renumber starting with NEW message # ";
  1237. 23820  LINE INPUT;HJ$
  1238. 23830  IF HJ$="" THEN GOTO 23000
  1239. 23840  B1=VAL(HJ$)
  1240. 23850  IF B1<1 OR B1>9999 THEN GOTO 23810
  1241. 23860  NE=B1
  1242. 23870  OPEN "R",1,ME$
  1243. 23880  FIELD 1,128 AS R$
  1244. 23890  GOSUB 50340
  1245. 23900  J!=IJ
  1246. 23910  FOR I = IJ TO II-1
  1247. 23920    GET 1,J!
  1248. 23930    IF INSTR(R$,CHR$(225)) OR INSTR(R$,CHR$(226)) THEN GOSUB 24010:GOSUB 23610
  1249. 23940  NEXT
  1250. 23950  CLOSE 1
  1251. 23960  IF NE>B1 THEN IO=NE-1
  1252. 23970  GOSUB 22560
  1253. 23980  IA!=FNTI!+5
  1254. 23990  GOSUB 60440
  1255. 24000  GOTO 23000
  1256. 24010  LOCATE 24,15
  1257. 24020  PRINT "Msg #"+MID$(R$,1,5);
  1258. 24030  IF VAL(MID$(R$,2,4))<RE THEN PRINT " read";:RETURN
  1259. 24040  Y$=MID$(R$,1,1)
  1260. 24045  MID$(R$,1,5)=SPACE$(5)
  1261. 24050  MID$(R$,1,5)=STR$(NE)
  1262. 24060  MID$(R$,1,1)=Y$
  1263. 24070  PRINT " renumbered as Msg #"+MID$(R$,1,5)
  1264. 24080  NE=NE+1
  1265. 24090  PUT 1,J!
  1266. 24100  RETURN
  1267. 24110  GOSUB 22760
  1268. 24119  OPEN "R",1,UC$,128
  1269. 24120  FIELD 1,31 AS O.N$,15 AS OG$,2 AS OH$,14 AS OI$,24 AS OJ$,19 AS OL$,14 AS OM$,3 AS OO$,2 AS OQ$,2 AS OS$,2 AS OT$
  1270. 24130  GOSUB 50350:A$=F$:GOSUB 50095:OPEN "R",2,A$,128
  1271. 24140  FIELD 2,31 AS N$,15 AS PW$,2 AS SL$,14 AS OP$,24 AS CS$,19 AS MA$,14 AS TD$,3 AS LND$,2 AS UDL$,2 AS UUL$,2 AS ET$
  1272. 24150  NOW=VAL(LEFT$(DATE$,2))
  1273. 24180  A!=0:GOSUB 50840
  1274. 24190  IP=IG:A!=IG:IE=1
  1275. 24200  FOR J = 1 TO A!
  1276. 24210    GET 1
  1277. 24220    IF ASC(O.N$)=0 OR MID$(O.N$,1,7)="NEWUSER" OR MID$(O.N$,1,7)="       " THEN A$="":GOTO 24430
  1278. 24225    IF D.FLAG THEN 24290
  1279. 24230    OF=CVI(OH$)
  1280. 24240    IF OF=>PC THEN 24290      ' copy users exempt from purges
  1281. 24250    IF OF<=ML THEN 24290      ' copy "locked-out" users
  1282. 24260    OU=VAL(LEFT$(OM$,2))
  1283. 24270    LQ=NOW-OU
  1284. 24280    IF LQ<0 THEN LQ=LQ+12
  1285. 24285    IF LQ>LA THEN A$="(Last on "+OM$+")":GOTO 24430 'Purge inactive users
  1286. 24290    PRINT STR$(LOC(1))+": "+O.N$+" copied .... ";
  1287. 24300    GOSUB 50720:GOTO 24450
  1288. 24430    PRINT STR$(LOC(1))+": "+O.N$+"        purged... "+A$
  1289. 24450  NEXT
  1290. 24650  CLOSE 1,2
  1291. 24660  OPEN "R",2,ME$,128
  1292. 24670  FIELD 2,128 AS RR$
  1293. 24680  GET 2,1
  1294. 24689  MID$(RR$,57,10)=SPACE$(10)   'reset all counters before filling
  1295. 24690  MID$(RR$,57,5)=STR$(IE)  '57-61 = next avail. user record
  1296. 24700  MID$(RR$,62,5)=STR$(UB)  '62-66 = last rec. of user file
  1297. 24710  PUT 2,1
  1298. 24720  CLOSE 2
  1299. 24730  GOSUB 50340:LOCATE 24,5:PRINT"Delete the old "+UC$+" file? (YES or NO)?";
  1300. 24740  GOSUB 22380:ON AB GOTO 24750,24770,24730,24730
  1301. 24750  A$=UC$:GOSUB 50096:NAME UC$ AS A$
  1302. 24760  GOTO 24780
  1303. 24770  KILL UC$
  1304. 24780  GOSUB 50350:A$=F$:GOSUB 50095:NAME A$ AS UC$
  1305. 24790  RETURN
  1306. 24800  CLS
  1307. 24810  I!=FRE(C$)
  1308. 24820  COLOR 0,7,0
  1309. 24830  LOCATE 1,10
  1310. 24840  PRINT"RBBS-PC CPC12.5 Default Configuration "+VER$;
  1311. 24850  COLOR FGR,BGR,BDR
  1312. 24860  LOCATE 1,68
  1313. 24870  PRINT"Page "+STR$(CN)+" of "+STR$(MB)
  1314. 24880  RETURN
  1315. 24890  A$="Enter parameter number to change, END to update, PgUp/PgDn to scroll.
  1316. 24900  LOCATE 24,1
  1317. 24910  PRINT A$;
  1318. 24920  PRINT STRING$((79-LEN(A$)),32);
  1319. 24930  LOCATE 24,LEN(A$)+1
  1320. 24940  COLOR FGR,BGR,BDR:HJ$="
  1321. 24950  I!=FRE(C$)
  1322. 24960  RETURN
  1323. 24970  CLS:LOCATE 12,1,1:PRINT "RBBS-PC configuration description file, "+CA$+", now on default drive.":GOSUB 60380
  1324. 24980  IF USW THEN GOTO 24990 ELSE LOCATE 14,1,1:PRINT UC$+" file has been preformatted to"+STR$(UB)+" records.":IF MSW=1 AND IB=1 THEN GOSUB 22770:OPEN "R",2,ME$,128:FIELD 2,128 AS RR$:GOSUB 21430
  1325. 24990  IF MSW=1 THEN GOTO 25000 ELSE LOCATE 16,1,1:PRINT ME$+" file has been preformatted to"+STR$(MQ!)+" records.
  1326. 25000  IF USW OR MSW THEN GOSUB 22560
  1327. 25010  GOTO 60340
  1328. 25020  LOCATE 24,5:PRINT "Preformatting record"+STR$(LOC(2))+" of "+UC$+" file.";:RETURN
  1329. 25030  LOCATE 24,5:PRINT "Preformatting record"+STR$(LOC(2))+" of "+ME$+" file.";:RETURN
  1330. 25040  GOSUB 50340
  1331. 25050  LOCATE 24,5:PRINT "Enter the name of the conference (seven characters or less) ";
  1332. 25060  LINE INPUT;HJ$
  1333. 25070  IF LEN(HJ$)<1 OR LEN(HJ$)>7 THEN GOTO 25040
  1334. 25075  GOSUB 50654:CP$=HJ$
  1335. 25080  GOSUB 50340
  1336. 25090  LOCATE 24,5:PRINT "Specify drive (A->"+M$+") containing this conference's files. ";
  1337. 25100  LINE INPUT;HJ$
  1338. 25110  IF LEN(HJ$)<>1 THEN GOTO 25080
  1339. 25112  GOSUB 50654
  1340. 25114  IF HJ$<"A" OR HJ$>M$ THEN GOTO 25090
  1341. 25120  CP$=HJ$+":"+CP$
  1342. 25140  CQ$=CP$+"M.DEF
  1343. 25141  GOSUB 50340
  1344. 25142  LOCATE 24,5:PRINT"Is this a private conference? (YES or NO)";
  1345. 25143  GOSUB 22380:ON AB GOTO 25144,25160,25141,25141
  1346. 25144  CR$=UC$:GOTO 25161
  1347. 25160  CR$=CP$+"U.DEF
  1348. 25161  F=1:GOSUB 50300
  1349. 25162  NAME ME$ AS ME$
  1350. 25163  GOSUB 22770
  1351. 25164  UB=IG
  1352. 25165  MQ!=IH
  1353. 25166  MP=CINT((IH-1-MC)/5)
  1354. 25170  GOTO 21550
  1355. 25180  CLS:I!=FRE(C$):COLOR 0,7,0:LOCATE 1,23:PRINT"RBBS-PC CPC12.5 Default Configuration";:COLOR FGR,BGR,BDR
  1356. 25190  LOCATE  2,5:PRINT"The RBBS-PC "+CO$+" Commands are as follows:
  1357. 25200  LOCATE   3,8:PRINT"Command                       Security Level":RETURN
  1358. 25210  LOCATE 24,5:PRINT"Enter first character of command (CR to end)";:LINE INPUT;X$:IF X$="" THEN RETURN 16910 ELSE RETURN
  1359. 50000  OPEN "R",2,UC$
  1360. 50010  FIELD 2,128 AS U$
  1361. 50015  GOSUB 50340
  1362. 50020  FOR J=1 TO UB
  1363. 50030    LSET U$ = SPACE$(128)
  1364. 50040    PUT 2
  1365. 50050    GOSUB 25020
  1366. 50060  NEXT
  1367. 50070  ID=1:IE=1:IG=LOC(2)
  1368. 50080  CLOSE 2
  1369. 50090  RETURN
  1370. 50095  IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".BAK":RETURN ELSE A$=A$+".BAK":RETURN
  1371. 50096  IF INSTR(A$,".") THEN A$=MID$(A$,1,INSTR(A$,".")-1)+".OLD":RETURN ELSE A$=A$+".OLD":RETURN
  1372. 50100  OPEN "R",2,ME$
  1373. 50110  FIELD 2,128 AS RR$
  1374. 50114  IF F=1 THEN IO=1
  1375. 50115  GOSUB 50340
  1376. 50120  LSET RR$=" 1      "+SPACE$(118)+STR$(MC)
  1377. 50130  PUT 2,1                       ' write out first record of new file
  1378. 50140  FOR J!=2 TO MC+1
  1379. 50150    GOSUB 20800
  1380. 50160    PUT 2                       ' write out "door" records of new file
  1381. 50170    GOSUB 25030
  1382. 50180  NEXT
  1383. 50190  IJ=LOC(2)+1                ' point to first message record
  1384. 50200  II=IJ                   ' point to next available message record
  1385. 50210  IF MC+1=MQ! THEN GOTO 50270
  1386. 50220  FOR J!=MC+2 TO MQ!
  1387. 50230    LSET RR$ = SPACE$(128)
  1388. 50240    PUT 2                       ' write out messages records of new file
  1389. 50250    GOSUB 25030
  1390. 50260  NEXT
  1391. 50270  IH=LOC(2)                  ' point to last available message record
  1392. 50280  GOSUB 21430
  1393. 50290  RETURN
  1394. 50300  IC=NOT IC:SWAP ME$,CQ$
  1395. 50320  SWAP CR$,UC$
  1396. 50325  SWAP CT,MP:SWAP CU!,MQ!
  1397. 50330  RETURN
  1398. 50340  I!=FRE(C$):LOCATE 24,1:PRINT STRING$(79,32);:RETURN
  1399. 50350  F$=UC$
  1400. 50360  IF INSTR(UC$,".") THEN F$=MID$(UC$,1,INSTR(UC$,".")-1)
  1401. 50370  RETURN
  1402. 50380  IB=1
  1403. 50410  IL=ID
  1404. 50420  IM=IE
  1405. 50430  IN=IG
  1406. 50470  RETURN
  1407. 50480  UB=8
  1408. 50490  NAME UC$ AS UC$
  1409. 50500  OPEN "R",1,UC$
  1410. 50510  IF UB<LOF(1)/128 THEN UB=LOF(1)/128
  1411. 50520  UG=LOF(1)/128:CLOSE 1:GOTO 50470
  1412. 50530  MQ!=(5*MP)+1+MC
  1413. 50540  NAME ME$ AS ME$
  1414. 50550  OPEN "R",1,ME$
  1415. 50560  IF MQ!<LOF(1)/128 THEN MQ!=LOF(1)/128
  1416. 50570  MV!=LOF(1)/128:CLOSE 1:GOTO 50470
  1417. 50580  OLD=LOC(1):GET 1,J!
  1418. 50590  IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN RETURN
  1419. 50600  PRINT "Message chain broken at record number "+STR$(OLD)
  1420. 50610  PRINT "Message chain repair in progress!
  1421. 50620  FOR IQ=OLD+1 TO II-1
  1422. 50630    GET 1,IQ
  1423. 50640    IF (MID$(R$,116,1)=CHR$(225) OR MID$(R$,116,1)=CHR$(226)) AND (MID$(R$,61,1)=":" AND MID$(R$,64,1)=":" AND MID$(R$,70,1)="-" AND MID$(R$,73,1)="-") THEN GOTO 50660
  1424. 50645  NEXT
  1425. 50650  GOTO 23730
  1426. 50654  ' Convert Lower Case to Upper Case -------
  1427. 50655  FOR Z=1 TO LEN(HJ$):MID$(HJ$,Z,1)=CHR$(ASC(MID$(HJ$,Z,1))+32*(ASC(MID$(HJ$,Z,1))>96)):NEXT:RETURN
  1428. 50660  GET 1,OLD
  1429. 50670  MID$(R$,118,6)=STR$(IQ-OLD)
  1430. 50680  PUT 1,OLD
  1431. 50690  PRINT "Message chain repaired.
  1432. 50700  J!=IQ
  1433. 50710  RETURN
  1434. 50720    JX=30:WHILE MID$(O.N$,JX,1)=" ":JX=JX-1:WEND:X$=MID$(O.N$,1,JX)
  1435. 50721    UIX#=FNHSH(X$):Q=FNHSH2(X$):NSR=1:RO=CSRLIN:CO=POS(0)
  1436. 50722    GET 2,UIX#
  1437. 50724    IF MID$(N$,1,7)="       " THEN 50730
  1438. 50726    UIX#=UIX#+Q:IF UIX#>UB THEN UIX#=UIX#-UB
  1439. 50728    NSR=NSR+1:LOCATE RO,CO:PRINT "searching";UIX#;:GOTO 50722
  1440. 50730  LSET N$=O.N$:LSET PW$=OG$:LSET SL$=OH$:LSET OP$=OI$:LSET CS$=OJ$:LSET MA$=OL$:LSET TD$=OM$:LSET LND$=OO$:LSET UDL$=OQ$:LSET UUL$=OS$:LSET ET$=OT$
  1441. 50820    PUT 2,UIX#:IE=IE+1:LOCATE RO,CO:PRINT "to pos#";UIX#;" /";NSR;" srch(s)"
  1442. 50830    RETURN
  1443. 50840  FOR J=A!+1 TO UB
  1444. 50850    LSET N$   = SPACE$(31):LSET PW$  = SPACE$(15):LSET SL$  = MKI$(-32000):LSET OP$  = SPACE$(14):LSET CS$  = SPACE$(24):LSET MA$  = SPACE$(19)
  1445. 50910    LSET TD$  = SPACE$(14):LSET LND$ = SPACE$(3):LSET UDL$ = SPACE$(2):LSET UUL$ = SPACE$(2):LSET ET$  = SPACE$(2)
  1446. 50970    PUT 2:GOSUB 25020
  1447. 50980  NEXT:RETURN
  1448. 60000  REM
  1449. 60010  REM * HANDLE ERROR CONDITIONS *
  1450. 60020  ' PRINT ERR,ERL
  1451. 60030  IF ERR<>53 OR ERL<>10535 THEN 60040
  1452. 60032  LOCATE 24,5:PRINT SPC(74);:LOCATE 24,5:PRINT CA$+" file not found.  A new one will be created.";:IA!=FNTI!+5:GOSUB 60440
  1453. 60034  LOCATE 24,5:PRINT SPC(74);:LOCATE 24,5:PRINT "Default drive on which RBBS is to reside (A-"+M$+"): ";:LINE INPUT;HJ$:GOSUB 50654:IF LEN(HJ$)<>1 OR HJ$<"A" OR HJ$>M$ THEN 60034
  1454. 60036  DD$=HJ$:GOSUB 10540:RESUME 11870
  1455. 60040  IF ERR=62 AND (ERL=11600 OR ERL=11620 OR ERL=11640) THEN PRINT CA$+" from a version earlier than CPC12.5 on default drive.":PRINT "Please delete and rerun CONFIG.":RESUME 60340
  1456. 60050  IF ERL=19180 AND ERR=53 THEN RESUME 19940
  1457. 60060  IF ERL=19180 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+UC$+".  Check option 65";:IA!=FNTI!+5:GOSUB 60440:RESUME 15340
  1458. 60070  IF ERL=19180 AND ERR=58 THEN RESUME 19200
  1459. 60100  IF ERL=20030 AND ERR=53 THEN RESUME 20810
  1460. 60110  IF ERL=20030 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+ME$+".  Check option 61";:IA!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340
  1461. 60120  IF ERL=20030 AND ERR=58 THEN RESUME 20050
  1462. 60130  IF ERL=20360 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+ME$+".BAK"+".  Check option 62";:IA!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340
  1463. 60140  IF ERL=20750 AND ERR=58 THEN KILL A$:RESUME 20750
  1464. 60150  IF ERL=20780 AND ERR=58 THEN KILL A$:RESUME 20780
  1465. 60160  IF ERL=21030 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+A$+"  Check option 62";:IA!=FNTI!+5:GOSUB 60440:CLOSE 1:RESUME 15340
  1466. 60170  IF ERL=22120 AND ERR=6 THEN RESUME 22100
  1467. 60180  IF ERL=22760 AND ERR=53 THEN MQ!=(5*MP)+1+MC:RESUME 22940
  1468. 60190  IF ERL=22760 AND ERR=58 THEN RESUME 22770
  1469. 60200  IF ERL=22760 AND ERR=71 THEN MQ!=(5*MP)+1+MC:RESUME 22940
  1470. 60210  IF ERL=22760 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+ME$+".  Check option 61";:IA!=FNTI!+5:GOSUB 60440:CLOSE 2:RESUME 15340
  1471. 60220  IF ERL=22940 AND ERR=53 THEN RESUME 22990
  1472. 60230  IF ERL=22940 AND ERR=58 THEN RESUME 22950
  1473. 60240  IF ERL=22940 AND ERR=71 THEN RESUME 22990
  1474. 60250  IF ERL=22940 AND ERR=76 THEN LOCATE 24,5:PRINT "Path not found for "+UC$+".  Check option 65"7:IA!=FNTI!+5:GOSUB 60440:CLOSE 2:RESUME 15340
  1475. 60260  IF ERL=23550 AND ERR=58 THEN KILL A$:RESUME 23550
  1476. 60270  IF ERL=24750 AND ERR=58 THEN KILL A$:RESUME 24750
  1477. 60275  IF ERL=25162 AND ERR=58 THEN RESUME 25163
  1478. 60276  IF ERL=25162 AND ERR=53 THEN MP=CT:MQ!=CU!:RESUME 25170
  1479. 60277  IF ERL=25162 AND (ERR=64 OR ERR=76) THEN RESUME 25040
  1480. 60278  IF ERL=50490 AND ERR=58 THEN RESUME 50500
  1481. 60280  IF ERL=50540 AND ERR=58 THEN RESUME 50550
  1482. 60282  IF ERL=50490 OR ERL=50540 THEN RESUME 50470
  1483. 60285  IF ERR=61 THEN PRINT "ERROR - IBM DOS DISKETTE FULL ":RESUME 60340
  1484. 60290  IF ERR=67 THEN PRINT "ERROR - IBM DOS DIRECTORY FULL":RESUME 60340
  1485. 60300  IF ERR=70 THEN PRINT "DISKETTE IN DRIVE IS WRITE PROTECTED":RESUME 60340
  1486. 60310  IF ERR=71 THEN PRINT "DRIVE DOOR OPEN OR MISSING DISKETTE":RESUME 60340
  1487. 60320  IF ERR=72 THEN PRINT "ERROR - UNFORMATTED IBM DOS DISKETTE IN DRIVE":RESUME 60340
  1488. 60330  PRINT "+++ Error";ERR;" in line ";ERL "occurred at " TIME$ " on " DATE$
  1489. 60340  IF F=1 THEN GOSUB 10540:IA!=FNTI!+5
  1490. 60350  GOSUB 60440
  1491. 60360  SYSTEM
  1492. 60370  PRINT "Unable to create preformatted "+UC$+" file.":GOTO 60340
  1493. 60380  FOR WQ=1 TO 3:SOUND 1000*WQ,1:NEXT:RETURN
  1494. 60440  ' wait routine
  1495. 60450  IF FNTI!<IA! THEN GOTO 60450
  1496. 60460  RETURN
  1497.